Skip to main content

Migration from MessageBird to Orbit

This guide walks you through migrating your SMS, Flow Builder, WhatsApp, lookup, and Verify integration from MessageBird (Bird) to Orbit. The manual migration proceeds incrementally — traffic stays on MessageBird until you redirect your own integration.

Concept Mapping


Prefer not to do it by hand?

The Settings → Migrations import wizard ports your MessageBird account’s configuration — channels, contacts, and Flow Builder flows — onto Orbit with a read-only access key. MessageBird is one of the five supported migration sources. It never touches your live traffic, so your existing MessageBird integration keeps running until you cut over.
  1. In the dashboard, open the wizard for /import/messagebird (also reachable from onboarding).
  2. Connect — paste a MessageBird access key as the read-only credential. The key is handed forward to the job as an encrypted envelope; it is never persisted in the browser.
  3. Choose scope — checkbox the entity kinds you want: channels, contacts, flows.
  4. Dry-run preview — the wizard calls the preview endpoint and shows counts per entity, an ETA, and known conflicts before anything is written.
  5. Commit — start the job and stream progress; check Status: pending, running, succeeded, failed, or cancelled from Settings → Migrations.
The CLI wizard covers Twilio today; for MessageBird, use the dashboard wizard above or drive the same API endpoints over REST (POST /imports/:source/run). See run a platform migration end-to-end for the full job lifecycle (cancel, roll back, evidence). The rest of this guide covers the manual, code-level migration for teams who want control over each step.

Step 1: Create Your Orbit Account

  1. Sign up at orbit.devotel.io/signup
  2. Generate an API key at Settings → API Keys
  3. Note your key prefix: dv_live_sk_xxxx
Authenticate every request with the X-API-Key header — a single key replaces MessageBird’s AccessKey pairing.

Step 2: Port Your Numbers

Port your MessageBird numbers to Orbit. Number porting takes 7–14 business days. Via API: A port request must carry a Letter of Authorization (LoA). Orbit only accepts an LoA URL it issued itself, so upload the signed PDF to Orbit first and submit the returned URL — a link to your own bucket is rejected with LOA_URL_INVALID_ORIGIN.
Alternative: Buy new numbers from Orbit and update your systems gradually. For a walkthrough of the whole port-in flow, see port numbers.

Step 3: Update Message Sending

MessageBird (Before)

Orbit (After)

Key Differences

MessageBird’s recipients array maps to Orbit’s scalar to — one recipient per send. For a bulk batch, walk your recipient list and fan out per request, or move the workload to a campaign; see campaigns.

Step 4: Update Delivery-Report Webhooks

Webhook Header Changes

Verify against X-Orbit-Signature — it is the canonical header Orbit sends on every webhook delivery. X-Devotel-Signature is still emitted for backward compatibility only; treat it as legacy and do not build new verifiers against it.

Payload Format Changes

MessageBird (delivery report JSON):
Orbit (signed JSON envelope):

Update Signature Verification


Step 5: Migrate Flow Builder to Orbit Flows

Orbit’s Flows is a visual canvas backed by the same { nodes, edges } graph the Flows API writes — the same shape your MessageBird Flow Builder exports carry. Export each flow from MessageBird, re-model it as an Orbit definition, and create it with POST /api/v1/flows.

Trigger mapping

Two rules to avoid surprises:
  1. Gate event triggers. An inbound-message event also fires on API imports and CSV uploads, not just your live traffic. Put a Condition first, or a bulk import tags along behind your flow.
  2. Variables are flat. Write {{phone}}, not {{contact.phone}}; a missing key renders as an empty string. Validate with Flow’s Test mode before publishing.

Recipe example — welcome SMS rebuilt

Shape: inbound message → welcome SMS → 24-hour delay → follow-up email.
The graph is validated on save: no unreachable nodes, and no loops without an exit. Publish the draft so inbound messages trigger it. Use the visual Flows builder canvas as the same surface; see flows recipes for more definition shapes (reminders, triage, surveys, order updates) ready to drop in.

Step 6: Migrate WhatsApp

MessageBird’s WhatsApp “channels” fold their connectivity into the Bird tenant via a shared managed setup. On Orbit you connect your own WhatsApp Business Account (WABA) — the migration runs through Meta Business Manager verification, embedded sign-up, display-name and template approval, and quality/risk setup. The full walkthrough is the WhatsApp WABA setup guide. During the MessageBird → Orbit cutover, keep both channels live until templates and messaging limits carry over; routing happens at your integration layer.

Step 7: Migrate Verify (OTP)

MessageBird (Before)

Orbit (After)

See verify in 30 minutes for the full OTP onboarding path.

Migration Checklist

  • Create Orbit account and generate API keys
  • Run the Migrations wizard for channels, contacts, flows (or skip if manual)
  • Port numbers or purchase new ones
  • Install the Orbit SDK (npm install @devotel-orbit/node)
  • Update message-sending code (originator/recipients/body → channel/to/body)
  • Update webhook endpoint handlers
  • Update webhook signature verification (unsigned JSON → HMAC-SHA256)
  • Re-model Flow Builder exports as Orbit flow definitions
  • Stand up the new WABA for WhatsApp (if applicable)
  • Migrate Verify/OTP (if applicable)
  • Update monitoring and alerting
  • Run parallel testing (send via both MessageBird and Orbit)
  • Decommission the MessageBird integration
  • Release the old account’s credentials from your secret store

Parallel Running Strategy

Run MessageBird and Orbit in parallel during migration:
  1. Phase 1 (Week 1–2): Send 10% of traffic through Orbit, 90% through MessageBird
  2. Phase 2 (Week 3–4): Split 50/50 and compare delivery rates
  3. Phase 3 (Week 5): Route 100% through Orbit, keep MessageBird as fallback
  4. Phase 4 (Week 6+): Decommission MessageBird
Need help? Our solutions team offers free migration support for customers moving from MessageBird. Contact migrate@devotel.io.