Conversation Management Webhooks

Track conversation lifecycle events such as when conversations are opened, closed, assigned, or unassigned. These webhooks help you synchronize ownership, automate workflows, and maintain an up-to-date view of customer conversations within your external systems.

Available Events

EventDescription
CHAT_ASSIGNED_TO_AGENTTriggered when a conversation is assigned to an agent.
CHAT_UNASSIGNEDTriggered when a conversation is unassigned from an agent.
CONVERSATION_OPENEDTriggered when a customer starts a new conversation or reopens a closed conversation.
CLOSE_CONVERSATIONTriggered when a conversation is marked as done or closed.

Chat Assigned to Agent

Event type: CHAT_ASSIGNED_TO_AGENT

Triggered whenever a conversation is assigned to an agent, either manually or through an automated workflow.

Sample Payload

{
  "chatId": "chat_abc123",
  "assignedUserId": "user_xyz789",
  "assignedUserName": "John Doe",
  "assignedUserPhone": "+919876543210",
  "assignedUserEmail": "[email protected]",
  "assignedUserOrgRole": "Sales Manager",
  "assignedUserWabaRole": "Agent",
  "assignedUserWabaNumber": "+919000000000",
  "customerPhone": "+919111222333",
  "dtCustomerId": "customer_pvgpZUh3wg",
  "message": {
    "text": "John Doe assigned conversation to self"
  }
}

Payload Fields

FieldTypeRequiredDescription
chatIdstringYesUnique identifier of the conversation
assignedUserIdstringYesUnique identifier of the assigned agent
assignedUserNamestringYesDisplay name of the assigned agent
assignedUserPhonestringYesPhone number of the assigned agent
assignedUserEmailstringYesEmail address of the assigned agent
assignedUserOrgRolestringNoAgent role within the organization
assignedUserWabaRolestringNoAgent role associated with a specific WhatsApp number
assignedUserWabaNumberstringNoWhatsApp number associated with the assigned role
customerPhonestringYesCustomer phone number
dtCustomerIdstringYesUnique DoubleTick customer identifier
message.textstringYesHuman-readable description of the assignment action

Privacy notice: assignedUserPhone and assignedUserEmail contain personal data belonging to your agents. Ensure your webhook consumer handles this data in accordance with applicable data protection regulations (e.g. GDPR, DPDP). Avoid logging these fields in plain text or exposing them to unauthorized systems.


Chat Unassigned

Event type: CHAT_UNASSIGNED

Triggered when a conversation is unassigned from an agent.

Sample Payload

{
  "chatId": "chat_abc123",
  "customerPhone": "+919111222333",
  "wabaNumber": "+919000000000",
  "dtCustomerId": "customer_pvgpZUh3wg"
}

Payload Fields

FieldTypeRequiredDescription
chatIdstringYesUnique identifier of the conversation
customerPhonestringNoCustomer phone number
wabaNumberstringNoWhatsApp Business phone number associated with the conversation
dtCustomerIdstringYesUnique DoubleTick customer identifier

Notes

  • This webhook contains only conversation-level information.
  • Agent details are not included in this event.

Conversation Opened

Event type: CONVERSATION_OPENED

Triggered when a customer starts a new conversation or reopens an existing closed conversation.

Sample Payload

{
  "customerName": "Rohan Mehta",
  "customerPhone": "+919111222333",
  "from": "+919111222333",
  "to": "+919000000000",
  "dtCustomerId": "customer_pvgpZUh3wg",
  "conversationOpened": true
}

Payload Fields

FieldTypeDescription
customerNamestringCustomer name.
customerPhonestringCustomer phone number.
fromstringSource phone number.
tostringDestination WhatsApp Business phone number.
dtCustomerIdstringUnique DoubleTick customer identifier.
conversationOpenedbooleanIndicates that the conversation has been opened.

Notes

  • conversationOpened is always true.
  • from and customerPhone contain the same value.
  • To prevent duplicate notifications, this event may be delivered at most once within a 120-second window for the same customer and channel.

Close a Conversation

Event type: CLOSE_CONVERSATION

Triggered when a conversation is marked as done or closed in DoubleTick.

Sample Payload

{
  "customerName": "Rohan Mehta",
  "customerPhone": "+919111222333",
  "from": "+919111222333",
  "to": "+919000000000",
  "dtCustomerId": "customer_pvgpZUh3wg",
  "closeConversation": true
}

Payload Fields

FieldTypeDescription
customerNamestringCustomer name.
customerPhonestringCustomer phone number.
fromstringSource phone number.
tostringDestination WhatsApp Business phone number.
dtCustomerIdstringUnique DoubleTick customer identifier.
closeConversationbooleanIndicates that the conversation has been closed.

Notes

  • closeConversation is always true.
  • from and customerPhone contain the same value.
  • Agent information is not included in this webhook payload. If you need to identify who closed the conversation, look for the most recent CHAT_ASSIGNED_TO_AGENT event for the same dtCustomerId — the assigned agent at that point is the likely closer. For a definitive audit trail, use DoubleTick's conversation activity log.