MixdeskHelp Center
Skip to content

Developer Documentation

Mixdesk Webhook Reference

Last updated Dec 19, 2025

On this page

Receive and process Mixdesk data through webhooks.

Before you start

1. Go to Settings > Webhook.

Webhook settings page with Add Webhook highlighted

2. Add a webhook, select the events you need, and enter the receiving URL.

Webhook endpoint and event configuration dialog

3. After creation, use the displayed secret to verify signatures.

Configured webhook with secret field highlighted

Events

When a selected event occurs, Mixdesk sends its data to the webhook URL.

Event nameData model
Conversation ended: conversation.closedConversation model
Contact created: client.createdContact model
Contact updated: client.updatedContact model

General requirements

Signature

Mixdesk adds the HTTP header Mixdesk-Signature to each request. Verify it as follows:

  1. Read the HTTP request body as a string named body_str;
  2. Concatenate body_str and secret into the string to hash, named encrypted_str, body_str first, followed by secret.
  3. Hash encrypted_str using SHA-1 to obtain signature_str;
  4. Compare signature_str with the HTTP header Mixdesk-Signature value.

Request method

POST

Response status

Status codeDescription
200Success: Mixdesk delivered the subscribed event to the webhook URL.

Retries

For example, ending a conversation triggers one request. If it fails, Mixdesk retries once after 60 seconds. A failed retry is not attempted again.

Conversation data

Example response

{
  "method": "POST",
  "path": "/",
  "query": {},
  "client_ip": "3.110.241.114",
  "url": "https://123wqewqe.m.pipedream.net/",
  "headers": {
    "host": "123erreet.m.pipedream.net",
    "content-length": "2002",
    "user-agent": "Go-http-client/1.1",
    "content-type": "application/json; charset=utf-8",
    "mixdesk-signature": "b6ffa50ca776147ec302da793023d43600d8ca3e"
  },
  "bodyRaw": "{\"id\":\"sub_7bc8e0479291fe6481de189c9e65d580_1750821564_0358\",\"event\":\"conversation.closed\",\"enterprise_token\":\"xxxxxx\",\"created_at\":1750821564,\"conversation\":{\"agent_email\":\"xxxxxx@mixdesk.com\",\"agent_group_name\":\"Default Group\",\"agent_id\":13,\"agent_name\":\"xxxx\",\"agent_nick_name\":\"xxxxx\",\"agent_work_num\":\"\",\"browser_language\":\"zh-CN\",\"client_info\":{\"contact_id\":\"xxxx\",\"custom_fields\":{\"number01\":null,\"option01\":null,\"options01\":null,\"test001\":null,\"time01\":null},\"system_fields\":{\"comment\":\"\",\"email\":\"\",\"name\":\"\",\"tel\":\"\"},\"tags\":null,\"track_ids\":[\"xxxxxx\"]},\"conv_end_time\":\"2025-06-2503:19:15.000147\",\"conv_id\":3604512,\"conv_start_time\":\"2025-06-2503:19:05.487927\",\"conv_tags\":null,\"conv_title\":\"\",\"conv_url\":\"xxxxx\",\"ent_id\":11,\"evaluation\":0,\"evaluation_content\":\"\",\"messages\":[{\"agent_name\":\"\",\"agent_token\":\"\",\"content\":\"aassada\",\"from\":\"client\",\"timestamp\":\"2025-06-25T03:19:05.487927\",\"type\":\"text\"},{\"agent_name\":\"xxxx\",\"agent_token\":\"xxxxxx\",\"content\":\"asdghado\",\"from\":\"agent\",\"timestamp\":\"2025-06-25T03:19:12.658771\",\"type\":\"text\"},{\"agent_name\":\"xxxxx\",\"agent_token\":\"xxxx\",\"content\":\"niih1\",\"from\":\"agent\",\"timestamp\":\"2025-06-25T03:19:15.000147\",\"type\":\"text\"}],\"search_engine\":\"\",\"source\":\"web\",\"source_type\":\"Specified source\",\"source_url\":\"\",\"sub_source\":\"\",\"summary\":\"\",\"summary_time\":\"\",\"track_id\":\"xxxxxx\",\"utm_campaign\":\"\",\"utm_content\":\"\",\"utm_medium\":\"\",\"utm_source\":\"\",\"utm_term\":\"\",\"visit_id\":\"xxxxxx\",\"visit_page_title\":\"xxxx\",\"visit_page_url\":\"xxxx\",\"visitor_browser\":\"Chrome\",\"visitor_location\":\"xxxxx\",\"visitor_os\":\"MacOSX\"}}",
  "body": {
    "id": "sub_7bc8e0479291fe6481de189c9e65d580_1750821564_0358",
    "event": "conversation.closed",
    "enterprise_token": "xxxx",
    "created_at": 1750821564,
    "conversation": {
      "agent_email": "xxxx@mixdesk.com",
      "agent_group_name": "default",
      "agent_id": 13,
      "agent_name": "xxxx",
      "agent_nick_name": "xxxx",
      "agent_work_num": "",
      "browser_language": "zh-CN",
      "client_info": {
        "contact_id": "xxxxxx",
        "custom_fields": {
          "number01": null,
          "option01": null,
          "options01": null,
          "test001": null,
          "time01": null
        },
        "system_fields": {
          "comment": "",
          "email": "",
          "name": "",
          "tel": ""
        },
        "tags": null,
        "track_ids": [
          "xxxxx"
        ]
      },
      "conv_end_time": "2025-06-25 03:19:15.000147",
      "conv_id": 3604512,
      "conv_start_time": "2025-06-25 03:19:05.487927",
      "conv_tags": null,
      "conv_title": "",
      "conv_url": "xxxxxxxxxxx",
      "ent_id": 11,
      "evaluation": 0,
      "evaluation_content": "",
      "messages": [
        {
          "agent_name": "",
          "agent_token": "",
          "content": "aassada",
          "from": "client",
          "timestamp": "2025-06-25T03:19:05.487927",
          "type": "text"
        },
        {
          "agent_name": "xxxx",
          "agent_token": "xxxx",
          "content": "asdghado",
          "from": "agent",
          "timestamp": "2025-06-25T03:19:12.658771",
          "type": "text"
        },
        {
          "agent_name": "xxxxx",
          "agent_token": "286d6b5fafe9a6ff3f5bce503612cbe7",
          "content": "niih1",
          "from": "agent",
          "timestamp": "2025-06-25T03:19:15.000147",
          "type": "text"
        }
      ],
      "search_engine": "",
      "source": "web",
      "source_type": "Specified source",
      "source_url": "",
      "sub_source": "",
      "summary": "",
      "summary_time": "",
      "track_id": "xxxxx",
      "utm_campaign": "",
      "utm_content": "",
      "utm_medium": "",
      "utm_source": "",
      "utm_term": "",
      "visit_id": "xxxxx",
      "visit_page_title": "xxxxx",
      "visit_page_url": "xxxx",
      "visitor_browser": "Chrome",
      "visitor_location": "xxxx",
      "visitor_os": "Mac OS X"
    }
  }
}

Conversation model

Field nameTypeDescription
ent_idintegerWorkspace ID
client_infoobjectContact information
agent_namestringTeam member’s real name
agent_idintegerTeam member ID
agent_nick_namestringTeam member’s display name
agent_work_numstringEmployee ID
agent_accountstringTeam member’s email
agent_group_namestringTeam group name
conv_idintegerConversation ID
track_idstringConversation visit identifier
visit_idstringVisit ID
conv_tagsarray(string)Conversation tags
conv_start_timestringConversation creation time
conv_end_timestringConversation end time
conv_typeintegerConversation type: 1 = direct message, 2 = group
summarystringConversation summary
summary_timestringSummary time
evaluationintegerRating: 0 = negative, 1 = neutral, 2 = positive
evaluation_contentstringRating content
source_typestringTraffic source
source_urlstringSource URL
sourcestringConversation channel
sub_sourcestringSubchannel name
sub_source_remarkstringSubchannel notes
visit_page_titlestringLanding page title
visit_page_urlstringLanding page URL
conv_titlestringConversation page title
conv_urlstringConversation page URL
search_enginestringSearch engine
visitor_osstringOperating system
visitor_browserstringBrowser
visitor_locationstringRegion
browser_languagestringBrowser language
utm_sourcestringutm_source
utm_mediumstringutm_medium
utm_termstringutm_term
utm_contentstringutm_content
utm_campaignstringutm_campaign
messagesarray(object)Conversation message list
source_client_infoobjectChannel profile information, available for LINE, Facebook, Instagram, and Telegram.

client_info fields

Field nameTypeDescription
contact_idstringContact ID
track_idsarray(string)Visit identifiers
tagsarray(string)Contact tags
system_fieldsobjectSystem fields that are enabled for display
custom_fieldsobjectCustom fields that are enabled for display

messages fields

Field nameTypeDescription
agent_namestringReal name of the team member associated with the message
agent_tokenstringToken of the team member associated with the message
fromstringMessage source
timestampstringMessage time
contentstringMessage content
contentstringMessage content
typestringMessage type
source_usernamestringThird-party channel username (Facebook, Instagram, Telegram, LINE, WhatsApp API, WhatsApp App, or Email)
group_sender_idstringGroup user ID. Supported by WhatsApp App, LINE, and Telegram. WhatsApp App uses + followed by the phone number; other channels use the user ID.

source_client_info fields:

Field nameTypeDescription
user_idstringUser ID on the third-party channel
genderstringGender
localestringLocale
timezoneintTime zone
user_namestringUser name

Contact

Example response

{
  "method": "POST",
  "path": "/",
  "query": {},
  "client_ip": "3.110.241.114",
  "url": "https://ae21794766cf8e726231860a0aab57cd.m.pipedream.net/",
  "headers": {
    "host": "ae21794766cf8e726231860a0aab57cd.m.pipedream.net",
    "content-length": "457",
    "user-agent": "Go-http-client/1.1",
    "content-type": "application/json; charset=utf-8",
    "mixdesk-signature": "b2bbd002703ffb6bb0a5373eb3b5902d621f3ec3"
  },
  "bodyRaw": "{\"id\":\"sub_7bc8e0479291fe6481de189c9e65d580_1750822171_5938\",\"event\":\"client.updated\",\"enterprise_token\":\"xxxxx\",\"created_at\":1750822171,\"client\":{\"contact_id\":\"2yhv8RcDO0ZEB9aUxTkh2edknZ3\",\"custom_fields\":{\"number01\":null,\"option01\":null,\"options01\":null,\"test001\":null,\"time01\":null},\"ent_id\":11,\"system_fields\":{\"comment\":\"\",\"email\":\"123@q q .\",\"name\":\"aaa\",\"tel\":\"\"},\"tags\":null,\"track_ids\":[\"2yhv8SfzWyWwzJUZOXJLVEAKmfP\"]}}",
  "body": {
    "id": "sub_7bc8e0479291fe6481de189c9e65d580_1750822171_5938",
    "event": "client.updated",
    "enterprise_token": "xxxxx",
    "created_at": 1750822171,
    "client": {
      "contact_id": "xxxxx",
      "custom_fields": {
        "number01": null,
        "option01": null,
        "options01": null,
        "test001": null,
        "time01": null
      },
      "ent_id": 11,
      "system_fields": {
        "comment": "",
        "email": "",
        "name": "",
        "sources": [
          {
            "source": "whatsapp",
            "sub_source": "xxx"
          }
        ],
        "tel": "+xxx"
      },
      "tags": null,
      "track_ids": [
        "xxxxx"
      ]
    }
  }
}

Contact model

Field nameTypeDescription
contact_idstringContact ID
track_idsarray(string)Visit identifiers
tagsarray(string)Contact tags
system_fieldsobjectSystem fields that are enabled for display
system_fields.sourcesarray(object)All channel information for the contact. Merged contacts can contain multiple entries; duplicates are not removed.
custom_fieldsobjectCustom fields that are enabled for display

Related articles

Still need help?

Contact support@mixdesk.com for help with your setup.