Skip to main content
POST
/
server
Server Message
curl --request POST \
  --url https://api-prod.interactly.ai/server \
  --header 'Content-Type: application/json' \
  --data '
{
  "message": {
    "type": "status-update",
    "call": {
      "id": "a12f9c88-c155-461f-9771-4d240cdc9a04",
      "teamId": "1f7b1b1b1b1b1b1b1b1b1b1b",
      "assistantId": "3f7b1b1b1b1b1b1b1b1b1b1b",
      "callType": "web",
      "direction": "inbound",
      "startAt": "2020-10-05T00:00:00.000Z",
      "endAt": "2020-10-05T00:00:00.000Z",
      "userNumber": "+919867543210",
      "assistantNumber": "+19867543211",
      "status": "finished",
      "phoneCallStatus": "ringing",
      "callEndTriggerBy": "user",
      "monitor": {
        "controlUrl": "https://<domain>.interactly.ai/calls/v1/conversations/<random-id>/control"
      },
      "analysis": {
        "summary": "The user called Dentistry to schedule an appointment.",
        "successEvaluation": "success",
        "structuredData": {}
      }
    },
    "assistant": {
      "name": "My Assistant",
      "welcomeMessage": "Hello! How can I help you?",
      "welcomeMessageMode": "assistant-speaks-first",
      "welcomeMessageInterruptionsEnabled": false,
      "assistantProvider": "openai",
      "assistantModel": "gpt-4o-mini",
      "assistantLLMUrl": "<string>",
      "assistantSystemPrompt": "You are AI assistant to help patients with their health care needs.",
      "assistantTemperature": 0,
      "assistantMaxTokens": 256,
      "assistantResponseSplitter": ",",
      "config": {
        "speech": {
          "stt": {
            "vendor": "microsoft",
            "languages": "en-US"
          },
          "ttsData": [
            {
              "vendor": "eleven-labs",
              "language": "en-US",
              "voice": "ZeK6O9RfGNGj0cJT2HoJ"
            }
          ]
        }
      },
      "hints": [
        "<string>"
      ],
      "backgroundSound": "enable",
      "backgroundSoundVolume": 50,
      "assistantBackchannelingEnabled": false,
      "dtmfInputEnabled": false,
      "maxCallDuration": 900,
      "idleTimeout": 20,
      "maxIdleMessagesInSequence": 3,
      "startSpeakingOptions": {
        "waitSeconds": 0,
        "smartEndpointing": "Interactly",
        "onPunctuationSeconds": 0,
        "onNoPunctuationSeconds": 0,
        "onNumberSeconds": 0,
        "LiveKitBaseValue": 100,
        "LiveKitScaleValue": 1000
      },
      "stopSpeakingOptions": {
        "numberOfWords": 3,
        "voiceSeconds": 0
      },
      "assistantToolIds": [],
      "assistantPredefinedTools": {
        "knowledgeBase": false,
        "endCall": false,
        "appointment": false,
        "volumeControl": false,
        "waitList": false,
        "callForward": false
      },
      "assistantKnowledgeBaseIds": [],
      "endCallMessage": "Goodbye!",
      "endCallToolDescription": "Trigger the end call only when the user is done with the conversation.",
      "endCallPhrases": [
        "goodbye",
        "bye"
      ],
      "callForwardData": {
        "phoneNumber": "+1234567890",
        "extension": "",
        "name": "call-forward-name"
      },
      "assistantAnalysis": {
        "summary": {
          "enabled": false,
          "prompt": "Generate a summary of the call.",
          "timeoutSeconds": 30
        },
        "successEvaluation": {
          "enabled": false,
          "prompt": "Evaluate the success of the call.",
          "rubric": "NumericScale",
          "timeoutSeconds": 30
        },
        "structuredData": {
          "enabled": false,
          "prompt": "Extract structured data from the call.",
          "timeoutSeconds": 30,
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "This is the name of the user.",
                "example": "John Doe"
              },
              "dob": {
                "type": "string",
                "format": "date",
                "description": "This is the date of birth of the user.",
                "example": "1990-03-08"
              }
            }
          }
        }
      },
      "assistantOverrides": {
        "welcomeMessage": "Hello, how can I help you today?",
        "welcomeMessageMode": "assistant-speaks-first",
        "welcomeMessageInterruptionsEnabled": false,
        "recordingEnabled": true,
        "recordingPath": "/recordings",
        "dynamicVariables": {
          "user_name": "John Doe"
        }
      },
      "assistantServer": {
        "url": "https://api.example.com/v1/getUserDetails",
        "timeoutSeconds": 20,
        "secret": "my-secret",
        "headers": {},
        "enabled": false,
        "messages": [
          "status-update",
          "conversation-update",
          "hang",
          "end-of-call-report"
        ]
      },
      "_id": "5f7b1b1b1b1b1b1b1b1b1b1b",
      "teamId": "1f7b1b1b1b1b1b1b1b1b1b1b",
      "createdAt": "2020-10-05T00:00:00.000Z",
      "updatedAt": "2020-10-05T00:00:00.000Z"
    },
    "phone": {
      "_id": "a12f9c88-c155-461f-9771-4d240cdc9a04",
      "teamId": "1f7b1b1b1b1b1b1b1b1b1b1b",
      "number": "+1234567890",
      "provider": {
        "name": "twilio"
      },
      "assistantId": "a12f9c88-c155-461f-9771-4d240cdc9a04",
      "inboundEnabled": true,
      "outboundEnabled": true,
      "label": "friendly-name-1"
    },
    "customer": {
      "number": "<string>",
      "name": "<string>"
    },
    "analysis": {
      "summary": "The user called Dentistry to schedule an appointment.",
      "successEvaluation": "success",
      "structuredData": {}
    },
    "messages": [
      {
        "messageId": "5f7b1b1b1b1b1b1b1b1b1b1b",
        "role": "user",
        "text": "Hello! How can I help you?",
        "timestamp": "2020-10-05T00:00:00.000Z"
      }
    ]
  }
}
'
{
  "message": "Done"
}

Body

application/json
message
StatusUpdate · object
required

These are all the messages that can be sent to your server before, after and during the call. Configure the messages you'd like to receive in assistant.server.messages.

Response

200 - application/json

This is the response that is expected from the server to the message.

message
string
Example:

"Done"