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 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.

Request This SetupBook an Integration Review

What this integration enables

Order confirmation
Confirm the order the moment it's placed, on the channel customers actually read.
Shipping and delivery updates
Fulfillment and carrier milestones become short, timely messages.
Payment status notifications
Confirm captured payments and flag failed ones before they become support tickets.
Customer service updates
Returns, exchanges, and inquiry follow-ups stay visible without email chains.
Abandoned checkout reminders
Only where consent rules permit — recover carts with a single respectful reminder.
Two-way order questions
Replies come back on your webhook, ready to route into support.

Implementation options

WooCommerce action hooks (server-side PHP) + HTTP request
WooCommerce events call the SendiMessage API directly or through a thin handler.
Middleware integration
Your backend receives WooCommerce webhooks, applies consent checks, sends the message, and records delivery events against the order.
Automation platform
Zapier, Make, or n8n map WooCommerce triggers to SendiMessage HTTP actions without custom code.
Webhook-based synchronization
Delivery events return to your status_callback URL — embed the order id in it — for order-timeline updates; replies arrive on your webhook with the customer's number.

Architecture

How it fits together: WooCommerce 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 WooCommerce timeline update.
  1. WooCommerce eventA record changes, a stage moves, or a workflow fires
  2. Workflow or backendWooCommerce 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. WooCommerce timeline updateYour handler writes the event back as activity

Example request

Order-shipped payload
{
"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.

webhook event
// "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?
Not today. WooCommerce connects through the SendiMessage REST API using WooCommerce action hooks (server-side PHP), middleware, or an automation platform — this page is an API integration guide.
Can order notifications use iMessage?
Yes — the request is the same either way. The messaging line's configuration routes delivery to iMessage where the line and destination support it, with SMS fallback where configured; the channel actually used appears on the message's history row (GET /v2/messages) and webhook events. Every order update reaches the customer either way.
Are abandoned-cart messages allowed?
Only where your consent basis and local regulations permit them. Transactional order messaging is the primary use case; treat cart recovery as opt-in marketing and honor stop requests immediately.

Ready to connect WooCommerce?

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