Skip to main content

Summary

V1 is now in maintenance mode, while V2 is the actively supported release with ongoing development. We recommend migrating to V2 to benefit from continued updates and improvements.

To help with your migration, see the following pages:

  • Setup comparisons: understand the differences in configuration models and see how common scenarios are set up in each version.

  • API breaking changes: review the API changes that may affect your integrations.

How V1 and V2 coexist

V1 and V2 run independently — configuring V2 does not automatically disable or "take over" from V1. Which router handles a conversation is determined by the webhook registered on the channel: a channel is routed by V2 only once its inbound webhook points at V2.

Because of this:

  • You can build out your entire V2 configuration ahead of time — accounts, applications, flows, states, and handover settings — without affecting live V1 traffic. No messages reach V2 until you repoint a channel's webhook.

  • If a channel has both a V1 and a V2 webhook registered at the same time, both routers will process the message. There is no automatic mutual exclusion, so the old webhook must be removed as part of the switch.

Recommended migration approach

  1. Prepare V2 in full. Recreate your routing setup in V2 (see Setup comparisons). This has no effect on live routing yet.

  2. Cut over one channel at a time. For each channel, point its inbound webhook at V2 and remove the V1 webhook. Migrating per channel lets you validate each one in isolation and roll back quickly if needed.

  3. Verify, then decommission V1. Once all channels are routing through V2 and verified, remove the remaining V1 configuration.

📘 Migration tip

There is no single global "go live" switch. The per-channel webhook is the cutover control, which is what makes a staged, channel-by-channel migration possible.