Conversations

Update a conversation

Update a conversation. Updates the fields you name and keeps the rest. `metadata` merges into the stored metadata by key, and a `null` value deletes that key.

PATCH
/v1/conversations/{id}

Updates the fields you name and keeps the rest. metadata merges into the stored metadata by key, and a null value deletes that key. primaryChannel must be one of the conversation's channels. Tags, categories, and channels are not updated here: use POST and DELETE on /v1/conversations/{id}/tags, /v1/conversations/{id}/categories, and /v1/conversations/{id}/channels.

Authorization

apiKey
headerx-api-key<token>

Path Parameters

id*string
Match^conv_[0-9a-hjkmnp-tv-z]{16,24}$

Request Body

application/json
  1. body
title?string|null
description?string|null|null
externalId?string|null|null
parentConversationId?|null|null
primaryChannel?|null
status?|null
statusReason?string|null|null
priority?|null
urgency?|null
complexity?|null
context?|null|null
metadata?|null
isTest?boolean|null
isInternal?boolean|null
isPrivate?boolean|null

Response Body

Conversation

application/json
  1. response
id*ConversationId
Match^conv_[0-9a-hjkmnp-tv-z]{16,24}$
title*string|null
externalId*string|null
status*string
Value in"active""waiting""resolved""escalated""archived"
primaryChannel*string
Value in"sms""whatsapp""email"
channels*array<>
priority*integer
Range0 <= value <= 9007199254740991
urgency*string
Value in"low""medium""high""critical"
tags*array<string>
isTest*boolean
messageCount*integer
Range0 <= value <= 9007199254740991
lastActivityAt*string
createdAt*string
description*string|null
parentConversationId*|null
statusReason*string|null
complexity*string
Value in"simple""moderate""complex"
categories*array<string>
metadata*|null
context*|null
isInternal*boolean
isPrivate*boolean
contacts*array<>
startedAt*string
lastHumanActivityAt*string|null
resolvedAt*string|null
archivedAt*string|null
resolutionType*|null
resolutionNotes*string|null
updatedAt*string
Example Request
import { createClient } from "samva";const samva = createClient({ apiKey: process.env.SAMVA_API_KEY! });const result = await samva.conversations.update({  "id": "example"});
Example Response
{  "id": "string",  "title": "string",  "externalId": "string",  "status": "active",  "primaryChannel": "sms",  "channels": [    "sms"  ],  "priority": 0,  "urgency": "low",  "tags": [    "string"  ],  "isTest": true,  "messageCount": 0,  "lastActivityAt": "string",  "createdAt": "string",  "description": "string",  "parentConversationId": "string",  "statusReason": "string",  "complexity": "simple",  "categories": [    "string"  ],  "metadata": {    "property1": "string",    "property2": "string"  },  "context": {    "customerData": {      "property1": "string",      "property2": "string"    },    "previousConversations": [      "string"    ],    "sessionVariables": {      "property1": "string",      "property2": "string"    },    "workflowState": {      "currentStep": "string",      "completedSteps": [        "string"      ],      "pendingSteps": [        "string"      ],      "workflowData": {        "property1": "string",        "property2": "string"      }    }  },  "isInternal": true,  "isPrivate": true,  "contacts": [    {      "id": "string",      "name": "string",      "displayName": "string",      "identities": [        {          "type": "email",          "identifier": "string",          "verified": true        }      ]    }  ],  "startedAt": "string",  "lastHumanActivityAt": "string",  "resolvedAt": "string",  "archivedAt": "string",  "resolutionType": "automated",  "resolutionNotes": "string",  "updatedAt": "string"}

Related documentation