Server Message
curl --request POST \
--url https://your.server.com/v1/server \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"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"
},
"sttFallback": {
"enabled": true,
"vendor": "microsoft",
"languages": "en-US"
},
"ttsData": [
{
"enabled": true,
"vendor": "eleven-labs",
"language": "en-US",
"voice": "ZeK6O9RfGNGj0cJT2HoJ",
"config": {
"modelId": "eleven_multilingual_v2",
"stability": 0.7,
"similarityBoost": 0.85,
"speakerBoost": true,
"styleExaggeration": 0.5,
"seed": 42,
"speed": 1,
"applyTextNormalization": true
}
}
]
}
},
"hints": [
"<string>"
],
"backgroundSound": "enable",
"backgroundSoundVolume": 50,
"ttsCacheEnabled": false,
"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
},
"userInterruptionAckPlan": {
"enabled": true,
"count": 2,
"words": 4,
"phrases": [
"Please hold on while I check your account.",
"one moment please",
"let me just check that for you"
]
},
"assistantToolIds": [],
"assistantPredefinedTools": {
"knowledgeBase": false,
"endCall": false,
"appointment": false,
"volumeControl": false,
"waitList": false,
"callForward": false
},
"assistantType": "single_prompt",
"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.",
"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"
}
},
"assistantOutcome": [
{
"type": "<string>",
"field": "<string>"
}
],
"smsConfiguration": {
"enabled": true,
"sameAsAssistant": true,
"smsPrompt": "<string>"
},
"persistHistory": {
"enabled": true,
"call": true,
"sms": true,
"retentionPeriod": 7
},
"_id": "5f7b1b1b1b1b1b1b1b1b1b1b",
"teamId": "1f7b1b1b1b1b1b1b1b1b1b1b",
"createdAt": "2020-10-05T00:00:00.000Z",
"updatedAt": "2020-10-05T00:00:00.000Z"
},
"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"
}Webhooks
Server Message
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.
Set your server url via assistant.server.url parameter.
POST
/
server
Server Message
curl --request POST \
--url https://your.server.com/v1/server \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"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"
},
"sttFallback": {
"enabled": true,
"vendor": "microsoft",
"languages": "en-US"
},
"ttsData": [
{
"enabled": true,
"vendor": "eleven-labs",
"language": "en-US",
"voice": "ZeK6O9RfGNGj0cJT2HoJ",
"config": {
"modelId": "eleven_multilingual_v2",
"stability": 0.7,
"similarityBoost": 0.85,
"speakerBoost": true,
"styleExaggeration": 0.5,
"seed": 42,
"speed": 1,
"applyTextNormalization": true
}
}
]
}
},
"hints": [
"<string>"
],
"backgroundSound": "enable",
"backgroundSoundVolume": 50,
"ttsCacheEnabled": false,
"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
},
"userInterruptionAckPlan": {
"enabled": true,
"count": 2,
"words": 4,
"phrases": [
"Please hold on while I check your account.",
"one moment please",
"let me just check that for you"
]
},
"assistantToolIds": [],
"assistantPredefinedTools": {
"knowledgeBase": false,
"endCall": false,
"appointment": false,
"volumeControl": false,
"waitList": false,
"callForward": false
},
"assistantType": "single_prompt",
"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.",
"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"
}
},
"assistantOutcome": [
{
"type": "<string>",
"field": "<string>"
}
],
"smsConfiguration": {
"enabled": true,
"sameAsAssistant": true,
"smsPrompt": "<string>"
},
"persistHistory": {
"enabled": true,
"call": true,
"sms": true,
"retentionPeriod": 7
},
"_id": "5f7b1b1b1b1b1b1b1b1b1b1b",
"teamId": "1f7b1b1b1b1b1b1b1b1b1b1b",
"createdAt": "2020-10-05T00:00:00.000Z",
"updatedAt": "2020-10-05T00:00:00.000Z"
},
"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"
}Documentation Index
Fetch the complete documentation index at: https://docs.interactly.ai/llms.txt
Use this file to discover all available pages before exploring further.
Body
application/json
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.
- StatusUpdate
- ConversationUpdate
- Hang
- EndOfCallReport
Show child attributes
Show child attributes
Response
200 - application/json
This is the response that is expected from the server to the message.
Example:
"Done"
⌘I