Send Freshdesk ticket updates by SMS and supported iMessage
Freshdesk automations ('When a ticket is updated…') include a native 'Trigger webhook' action with custom headers and a templated JSON body — enough to call the SendiMessage API directly, no middleware for the outbound direction.
Configure the automation with the X-API-Key / X-API-Secret pair in the headers and ticket placeholders in the body. Replies return on your SendiMessage webhook with the customer's number; a small handler (or Freshworks' own automation tooling) appends them to the ticket via the Freshdesk API.
What this integration enables
Implementation options
Architecture
- Freshdesk eventA record changes, a stage moves, or a workflow fires
- Workflow or backendFreshdesk automation or your middleware prepares the request
- SendiMessage APIPOST /send-message — the message is validated and queued
- Managed messaging lineYour dedicated line sends the message
- SMS or supported iMessageChannel routing picks iMessage where supported, SMS otherwise
- CustomerThe message arrives; the customer can reply
- Delivery or reply eventSendiMessage records what actually happened
- Signed webhookYour endpoint receives outbound or receive
- Freshdesk timeline updateYour handler writes the event back as activity
Example request
{"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 Freshdesk API to append the reply as a comment or note — the agent sees it in the ticket like any other customer message.
// "outbound" event → your freshdesk 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 freshdesk.
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 Freshdesk 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 Freshdesk app?
Can customer replies re-open or update tickets?
Can ticket updates go out over iMessage?
Related integrations
Ready to connect Freshdesk?
Request a messaging line and a SendiMessage integration specialist will review your Freshdesk workflow and guide the setup.