Send WooCommerce order updates over SMS and supported iMessage
WooCommerce runs inside WordPress, so the integration is a PHP hook — no external infrastructure needed. Every order-status transition fires woocommerce_order_status_changed with the order object in hand.
A small snippet in a site plugin listens for the statuses you care about (processing, completed), reads the billing phone from the order, and posts to the SendiMessage API with wp_remote_post — the key defined as a constant in wp-config.php. A REST route registered with register_rest_route receives delivery and reply webhooks and can add order notes so the conversation stays attached to the order.
What this integration enables
Implementation options
Architecture
- WooCommerce eventA record changes, a stage moves, or a workflow fires
- Workflow or backendWooCommerce 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
- WooCommerce timeline updateYour handler writes the event back as activity
Example request
{"number": "{{order.customer_phone}}","content": "Hi {{order.first_name}}, your order #{{order.number}} has shipped. Track it here: {{order.tracking_url}}","status_callback": "https://your-endpoint.example.com/status?order_id={{order.id}}"}
Template variables are examples — use your platform's own merge fields or values resolved by your handler. The API accepts only number, content, and optional media_url / status_callback / line_handle; store the returned message_handle on the order to match later events back.
Delivery events and incoming replies
Delivery events arrive on your status_callback URL with the order id you embedded in it, so your handler can mark the notification delivered on the order timeline; replies arrive on your webhook and can open a support conversation.
// "outbound" event → your woocommerce 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 order_id in woocommerce.
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 WooCommerce app is not available today; the methods on this page are API-based.
- Send messages only to recipients who expect them. Transactional and operational messaging is the primary use case — unsolicited bulk marketing is not.
Security considerations
- Keep the API key in your server or platform secret store — never in theme code, storefront scripts, or checkout customizations.
- Verify webhook signatures before updating order records.
- Send only what the message needs (phone, first name, order number) — never full order or payment details.
Frequently asked questions
Does SendiMessage have a native WooCommerce app?
Can order notifications use iMessage?
Are abandoned-cart messages allowed?
Ready to connect WooCommerce?
Request a messaging line and a SendiMessage integration specialist will review your WooCommerce workflow and guide the setup.