Create message
Create an inbound customer message. If `conversation.id` is provided the message is appended to that conversation; otherwise a new conversation is created on the channel given by `conversation.type` (email / sms / web_chat). For email, threading uses RFC 5322 References / In-Reply-To headers passed via `message.email`. The AI agent processes the message and any reply is delivered through Applied's native channel (Postmark for email, Twilio for SMS, WebSocket for web chat) — never through a ticketing connector.
/v2026-04/messages/Usage
Start from this cURL example and add filters as needed.
curl -X POST https://core.appliedlabs.ai/v2026-04/messages/ \
-H "Authorization: Bearer <api-token>" \
-H "X-Shop-Id: 66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10" \
-H "Content-Type: application/json" \
--data '{
"contact": {
"email": "support@example.com",
"name": "",
"phone": "string"
},
"conversation": {
"agent_contact": "string",
"direction": "inbound",
"id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"intent_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"topic_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"type": "email",
"user_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10"
},
"message": {
"attachments": [
"66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10"
],
"content": "string",
"email": {
"bcc": [
{
"email": "support@example.com",
"name": ""
}
],
"cc": [
{
"email": "support@example.com",
"name": ""
}
],
"in_reply_to": "",
"references": [
"string"
],
"subject": ""
},
"format": "TEXT",
"remote_id": "string",
"timestamp": "2026-04-07T14:30:00Z"
}
}'Authorizations
Send your Applied API key as Authorization: Bearer AL.... Create the key in the Applied dashboard and keep it on your server.
Header parameters
X-Shop-Idstring · uuidrequiredThe shop whose data you want to read.
Body
contactobjectrequiredcontact.emailstring · email | nullcontact.namestringcontact.phonestring | nullconversationobjectrequiredconversation.agent_contactstring | nullThe support email or phone the inbound message was sent to. Used to resolve which Agent handles the conversation. Required for email and sms types; omit for web_chat.
conversation.directionenum<string>requiredinboundconversation.idstring · uuid | nullconversation.intent_idstring · uuid | nullconversation.topic_idstring · uuid | nullconversation.typeoneOfemailsmsweb_chatconversation.user_idstring · uuid | nullmessageobjectrequiredmessage.attachmentsarraymessage.contentstringrequiredmessage.emailobjectOptional email-specific headers attached to message.email.
message.formatallOfTEXTMARKDOWNHTMLmessage.remote_idstring | nullmessage.timestampstring · date-time | null{
"contact": {
"email": "support@example.com",
"name": "",
"phone": "string"
},
"conversation": {
"agent_contact": "string",
"direction": "inbound",
"id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"intent_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"topic_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"type": "email",
"user_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10"
},
"message": {
"attachments": [
"66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10"
],
"content": "string",
"email": {
"bcc": [
{
"email": "support@example.com",
"name": ""
}
],
"cc": [
{
"email": "support@example.com",
"name": ""
}
],
"in_reply_to": "",
"references": [
"string"
],
"subject": ""
},
"format": "TEXT",
"remote_id": "string",
"timestamp": "2026-04-07T14:30:00Z"
}
}Response
The existing message that matched the dedup key.
agent_idstring · uuid | nullrequiredcontact_idstring · uuid | nullrequiredcontentstringconversation_idstring · uuid | nullrequiredcreated_atstring · date-timeformatenum<string>How the message content is formatted.
TEXTRICH_TEXTHTMLMARKDOWNidstring · uuidrequiredremote_idstring | nullremote_platformstring | nullrolestringstatusoneOfDelivery status for outbound messages.
PENDINGDELIVEREDFAILEDHIDDENtextstringticket_idstring · uuid | nullrequiredtypeenum<string>Whether the message is customer-facing or internal only.
InternalExternalupdated_atstring · date-timerequireduser_idstring · uuid | nullrequired{
"agent_id": "33333333-3333-4333-8333-333333333333",
"contact_id": "11111111-1111-4111-8111-111111111111",
"content": "Participant individual American range attorney role.",
"conversation_id": "55555555-5555-4555-8555-555555555555",
"created_at": "2026-04-07T14:30:00Z",
"format": "TEXT",
"id": "66666666-6666-4666-8666-666666666666",
"remote_id": "msg_3667beus",
"remote_platform": "zendesk",
"role": "assistant",
"status": "DELIVERED",
"text": "Participant individual American range attorney role.",
"ticket_id": "77777777-7777-4777-8777-777777777777",
"type": "External",
"updated_at": "2026-04-07T15:12:00Z",
"user_id": "44444444-4444-4444-8444-444444444444"
}