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

Skip to content
Example deployment

Example deployment: customer support messaging

Helpdesk automation notifies customers as tickets progress, and replies append to the same ticket through the webhook — agents keep one thread, customers never open the email.

This is an example architecture, not a customer case study — use it as a technical starting point for your own deployment.

Book an Integration Review

The business problem

Support updates sent by email go unread; customers call to ask what the ticket already says, and every reply that arrives out-of-band gets copy-pasted by hand.

Recommended architecture

How it fits together: Helpdesk, then Automation or middleware, then SendiMessage API, then Managed messaging line, then Customer, then Reply webhook, then Ticket update.
  1. HelpdeskTicket updated, agent replied, ticket closed
  2. Automation or middlewareBuilds the message with the ticket id
  3. SendiMessage APIPOST /send-message
  4. Managed messaging lineThe brand's support line
  5. CustomerUpdate arrives; reply invited
  6. Reply webhookreceive with the ticket id
  7. Ticket updateHandler appends the reply as a comment via the helpdesk API

System trigger

Helpdesk automations with webhook actions (Zendesk Triggers, Freshdesk automations, Gorgias HTTP integrations, Intercom Workflows) fire on the ticket events you choose.

Ticket updatedAgent responseTicket closedEscalation alert

SendiMessage API request

send message
curl -sS https://api.sendimessage.com/v1/send-message \
-H "X-API-Key: $SENDIMESSAGE_KEY" \
-H "X-API-Secret: $SENDIMESSAGE_SECRET" \
-H "Content-Type: application/json" \
-d '{
"number": "+15555550123",
"content": "Your support request #5531 has been updated: replacement approved and shipping Monday.",
"status_callback": "https://your-endpoint.example.com/status?ticket_id=5531&workflow=ticket_updated"
}'
# → {
# "status": "QUEUED",
# "message_handle": "4e828182-a640-483f-bfe9-17ffcaa51d48",
# "to": "+14155550123",
# "service": null,
# "is_outbound": true,
# "error_message": null,
# "date_sent": null
# }

Channel behavior and SMS fallback

Support updates need to arrive, full stop — "auto" with SMS fallback covers every recipient. iMessage delivery is available on supported messaging lines and destinations. Recipients without iMessage receive SMS when fallback is configured — never assume universal iMessage availability.

Incoming replies

One webhook endpoint serves the whole loop: verify the signature, read the ticket id, append the reply through the helpdesk API. Keyword rules can page a human for urgent replies before appending quietly.

webhook event
// "outbound" event → your helpdesk 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 helpdesk.

Messaging-line setup

One support line per brand keeps the customer-facing number consistent.

Security checklist

  • API key in server environment variables or a secrets manager — never in client code.
  • Webhook signatures verified before any record is updated.
  • Only the fields a message needs (phone, first name, reference id) leave your system.

Run the full implementation readiness checklist →

Pricing and managed onboarding

Per active line plus usage. Support messaging volume follows ticket volume — usually predictable and modest. Every line goes through managed onboarding: use-case review, test line, credentials delivered securely, and guided production activation.

Want this setup?

Request the setup and the team will map this example to your systems, or book a review to talk it through first.

Book an Integration Review