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

Skip to content
Logistics & delivery

Fewer failed deliveries, calmer dispatch

Failed first attempts are information failures. Logistics messaging announces windows and arrivals from the systems that already know the truth — and routes customer replies (gate codes, timing constraints) back to dispatch before the driver is at the wrong door.

Try the interactive demo

The communication problems

  • First-attempt failures because the customer didn't know the window
  • Drivers calling dispatch to reach unreachable customers
  • Access instructions arriving too late to matter
  • No audit trail when a customer disputes notification

Recommended workflows

Driver assigned
Route planning triggers the window announcement.
Arriving soon
The '15 minutes out' message that cuts failed attempts.
Delay notices
Honest, immediate, and automatic from dispatch state.
Reply capture
Gate codes and constraints land on the stop in the dispatch board.
Your delivery is scheduled today 2–4 PM.Your driver will arrive in 15 minutes.We're running ~30 minutes late — apologies.Delivered. Reply if anything's wrong.

Architecture

How it fits together: Dispatch system, then Backend handler, then SendiMessage API, then Customer, then Dispatch board.
  1. Dispatch systemRoutes, stops, driver events
  2. Backend handlerBuilds messages from stop + ETA data
  3. SendiMessage APIPOST /send-message with the delivery id
  4. CustomerNotification + reply channel
  5. Dispatch boardReplies and delivery events return via webhook

The 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 driver will arrive in 15 minutes.",
"status_callback": "https://your-endpoint.example.com/status?delivery_id=d_8841&workflow=driver_arriving"
}'
# → {
# "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 replies

Reliability first: "auto" delivers over iMessage where supported and SMS everywhere else — the window lands either way. iMessage delivery is available on supported messaging lines and destinations. Recipients without iMessage receive SMS when fallback is configured — never assume universal iMessage availability.

Two-way is the operational win: receive events carry the delivery id, so access notes reach the right stop in time to matter.

Line setup, availability, and pricing

One line per operating market; high-volume operations sometimes split by region for cleaner reporting.

Line availability varies by country and channel. Run a preliminary availability check, and the team confirms final availability during onboarding review. Check preliminary availability →

Pricing is per active line, billed monthly, with usage per your agreement — confirmed for your countries and volume during managed onboarding. How pricing works →

Frequently asked questions

Can the driver app trigger messages?
Via your backend, yes — the driver app reports to your server, and your server calls SendiMessage. The API key never ships in a mobile app.
How fast do replies arrive?
Replies post to your webhook as they're received, with retries until acknowledged — fast enough for dispatch to act before arrival.

Ready to build this?

Request the setup, or book an integration review and the team will map it to your systems.

Book an Integration Review