We use optional, privacy-safe analytics to understand which pages help visitors. Nothing optional runs until you choose. Privacy policy

Skip to content
API Integration GuideWorkflow + HTTP Request

Send Zendesk ticket updates over SMS and supported iMessage

Zendesk Support structures the whole conversation around tickets, and its Triggers + webhook system is built for exactly this pattern: when ticket conditions match, Zendesk POSTs a JSON body you define to an endpoint you choose.

Create a Zendesk webhook pointing at the SendiMessage API (X-API-Key / X-API-Secret headers) or at your middleware, then a Trigger — 'when ticket status changes to solved, notify the requester' — that fires it with ticket placeholders in the body. Replies return on your SendiMessage webhook with the customer's number; your handler matches them to the ticket and adds them with the Zendesk API as an internal note or public comment.

Request This SetupBook an Integration Review

What this integration enables

Ticket updated
Tell the customer the moment their request moves forward.
Agent response
Surface an agent's answer where the customer will actually see it.
Ticket closed
Confirm resolution and invite a reply if anything is still wrong.
Customer reply
Incoming messages return via webhook and become ticket activity through your handler.
Escalation alert
Notify customers (or internal on-call staff) when priority changes.
Appointment or service status
Scheduled visits and service windows announced ahead of time.

Implementation options

Zendesk Triggers + webhooks + HTTP request
Zendesk automation posts to the SendiMessage API when ticket conditions match.
Middleware integration
A small service receives Zendesk events, sends the message, and turns replies into ticket activity through the Zendesk API.
Automation platform
Zapier, Make, or n8n bridge Zendesk triggers and SendiMessage HTTP actions without custom code.
Webhook-based synchronization
Incoming replies arrive as receive events carrying the customer's number and conversation — your handler matches them to the ticket and appends them.

Architecture

How it fits together: Zendesk event, then Workflow or backend, then SendiMessage API, then Managed messaging line, then SMS or supported iMessage, then Customer, then Delivery or reply event, then Signed webhook, then Zendesk timeline update.
  1. Zendesk eventA record changes, a stage moves, or a workflow fires
  2. Workflow or backendZendesk automation or your middleware prepares the request
  3. SendiMessage APIPOST /send-message — the message is validated and queued
  4. Managed messaging lineYour dedicated line sends the message
  5. SMS or supported iMessageChannel routing picks iMessage where supported, SMS otherwise
  6. CustomerThe message arrives; the customer can reply
  7. Delivery or reply eventSendiMessage records what actually happened
  8. Signed webhookYour endpoint receives outbound or receive
  9. Zendesk timeline updateYour handler writes the event back as activity

Example request

Ticket-update payload
{
"number": "{{ticket.requester_phone}}",
"content": "Hi {{ticket.requester_first_name}}, your support request #{{ticket.id}} has been updated: {{ticket.latest_update}}",
"status_callback": "https://your-endpoint.example.com/status?ticket_id={{ticket.id}}"
}

Template variables are examples — substitute your platform's placeholders or values resolved by your middleware. The API accepts only number, content, and optional media_url / status_callback / line_handle; store the returned message_handle on the ticket to match later events back.

Delivery events and incoming replies

How replies become ticket activity: SendiMessage posts a receive event to your endpoint carrying the customer's number and conversation. Your handler matches that to the open ticket and calls the Zendesk API to append the reply as a comment or note — the agent sees it in the ticket like any other customer message.

webhook event
// "outbound" event → your zendesk endpoint
// Verify the SendiMessage-Signature header (t={timestamp},v1=HMAC-SHA256 of
// "{timestamp}.{raw body}", keyed with your webhook secret), then use
// GET /v2/messages/{message_handle} for authoritative state and match it to
// your ticket_id in zendesk.

Limitations and honest notes

  • iMessage delivery is available on supported messaging lines and destinations. Recipients without iMessage receive SMS when fallback is configured — never assume universal iMessage availability.
  • Messages are accepted asynchronously — the API returns status QUEUED and final status arrives via webhook or the message endpoints.
  • No official SDK for this ecosystem yet — the example uses plain HTTP against the REST API. Official SDKs are published for JavaScript/TypeScript (npm: sendimessage), Python (PyPI: sendimessage), PHP (Composer: sendimessage/sdk), and Go (github.com/sendimessage/sendimessage-go). Every SDK is dependency-free and covers the full public API surface.
  • A native Zendesk marketplace app is not available today; this page documents the API-based methods.

Security considerations

  • Store the SendiMessage key in the helpdesk's secure settings, your middleware's secret store, or the automation platform's vault.
  • Verify webhook signatures before writing replies into tickets.
  • Keep message bodies out of logs; correlate with message ids and ticket ids instead.

Frequently asked questions

Does SendiMessage have a native Zendesk app?
Not today. Zendesk connects through the SendiMessage REST API via Zendesk Triggers + webhooks, middleware, or an automation platform — honestly labeled as an API integration guide.
Can customer replies re-open or update tickets?
Yes, through your handler: the receive webhook carries your ticket id, and your code decides what to do — append a comment, re-open the ticket, or notify the assigned agent via the Zendesk API.
Can ticket updates go out over iMessage?
Yes — the request is the same either way. The line's configuration routes to iMessage where the line and destination support it, with SMS fallback where configured, so updates arrive either way; the channel used appears on the message's history row (GET /v2/messages) and webhook events.
Can Zendesk call SendiMessage without middleware?
For outbound sends, yes — a Zendesk webhook with the API key headers can post directly to the SendiMessage API. The reply direction (webhook → ticket comment) needs a small handler or an automation platform, since SendiMessage events must be translated into Zendesk API calls.

Ready to connect Zendesk?

Request a messaging line and a SendiMessage integration specialist will review your Zendesk workflow and guide the setup.