Migrate from Webex to Matrix and Element Call

Replacing Webex chat and meetings with a self-hosted Matrix server, Element and Element Call is a multi-part migration. This page explains what moves cleanly, what needs rework, and how to plan cutover.

On this page

Migrate from Webex to Matrix and Element Call: what the move involves

Organizations replacing Webex messaging and meetings at the same time usually do so after a renewal, a data residency review or a concern about lock-in, and they need to know early that this is a platform rebuild. Chat, identity, media and data each have their own work streams: a self-hosted Synapse homeserver with Element for messaging, Element Call for voice and video, single sign-on from your existing identity provider, and a plan for the Webex content you keep. Nothing in a Webex tenant maps directly onto a Matrix deployment, so treat the project as a set of parallel builds that must meet at a cutover date rather than as an export followed by an import.

Internal platform or security teams usually lead this work, with an implementation partner covering the parts they have not run before, such as the Matrix server, the media stack and the operations runbooks. Effort and risk depend mainly on how many users, rooms and integrations you move, how much you rely on Webex-specific features and how many people will run the service after go-live. The supplied research gives no duration for this kind of project, so ask any partner for a written scope that lists each work stream, its owner and its acceptance test. Confirm the current Synapse release, the PostgreSQL and Python versions it requires and the upstream end-of-life dates for those runtimes before you fix a plan, because the upgrade notes warn that rolling back a Synapse release can be difficult.

The main decision is whether the identity model, server name and federation policy are settled before any user is created, because changing server_name later changes how users and rooms are identified. Decide early whether the homeserver will federate at all (an empty federation_domain_whitelist disables it), and confirm which single sign-on method your directory supports, since Synapse offers OpenID Connect, SAML2 and CAS. Plan the cutover around a short freeze period, a parallel run for pilot groups and a rollback decision point that is tested in advance, and ask your partner to show how each Webex retention obligation will be met before the Webex tenant is closed.

Which Webex capabilities map to Matrix and Element Call, and which need rework

This table maps each major Webex capability to its closest self-hosted Matrix equivalent and marks it as clean, needs rework or gap. Read the status column first, then the notes, which name the services you must operate and the items you must confirm before committing. The main takeaway is that messaging maps well, while meeting media, room devices and Control Hub administration need separate planning.

Webex capabilityMatrix and Element equivalentStatus and notes
Spaces and team messagingSynapse rooms and spaces in Element clientsClean for chat. Map Webex spaces to rooms and plan room naming, membership and retention policies before import.
Direct messagesSynapse direct rooms in ElementClean. Confirm how encryption defaults and key backup will be handled for users who switch devices.
File sharingMedia uploads stored by Synapse in the media storeNeeds rework. Size the media store and confirm file types, size limits and retention with your data owners.
Meetings with video and audioElement Call, which relies on a separate LiveKit SFU and authorization serviceNeeds rework. You operate the LiveKit SFU and authorization service alongside Synapse, and must confirm their deployment model with the vendor.
Control Hub administrationSynapse admin API and server configuration files, with no direct equivalent to Control HubGap. Confirm which admin tasks you need and how they will be scripted or handled by your own tooling.
Single sign-onSynapse OpenID Connect, SAML2 and CAS supportClean in principle. Confirm the identity provider you use supports one of these protocols and test group mapping.
Room devices and SIP or hardware systemsNo direct Matrix equivalent for Webex room device supportGap. Confirm with your vendor which room systems, if any, can join Element Call, and plan for separate hardware if needed.
Video Mesh on-premises media nodesNo Matrix counterpartGap. Video Mesh has no Matrix equivalent, so on-premises media design must be planned from scratch.
Meeting recordings and transcriptsNo built-in equivalent in Element Call for recordings in the Webex formatNeeds rework. Export recordings from Webex first and confirm storage, retention and access for archived files.

What data can leave Webex, and which integrations to rebuild

A Webex move has two halves: the content you can export and the identity and automation you must rebuild on the Matrix side. Message history and recordings follow different paths, and most integrations need a deliberate replacement rather than a copy.

Meeting recordings from Webex

Recordings can be retrieved through the Webex recordings API or downloaded from the site. Plan a batch export with a clear inventory of which recordings are needed, because the export path and file formats depend on how each recording was stored. Confirm with Webex which recording types, file formats and retention settings apply to your site before you schedule the work, and check whether any recordings sit under a user who has left the organization.

Messaging history and what it can carry

Message history cannot be imported into Matrix rooms as-is. Decide early whether you archive the Webex export as read-only files, keep a searchable read-only copy, or start new rooms with no backfill. Each choice has a different cost and retention profile, and the decision belongs in the cutover plan, not in the final week.

Confirm the Webex export scope

Ask Webex in writing which messaging data the site lets you export, in what form, and for which time range. Export scope varies by plan and site configuration, so the answer should be recorded as a contract or migration assumption. Confirm also whether file attachments, reactions, and space membership lists are included.

Identity mapping to Synapse sign-in

Map each Webex identity to a Matrix user ID under your server_name, then decide the sign-in path. Synapse supports OpenID Connect through oidc_providers, SAML2 through saml2_config, and CAS. Confirm which of these your identity provider supports, and plan how existing display names and email addresses will map to new accounts.

Bots, calendar links and integrations

Webex bots, calendar invitations, scheduling links, and connectors to ticketing or monitoring tools do not transfer automatically. List each one with its owner and function, then rebuild it against Matrix APIs or bridges where a suitable bridge exists. Confirm bridge support for each system before assuming a replacement, since coverage varies.

Meeting links and room device integrations

Existing meeting links in calendars, email templates, and intranet pages point at Webex and will stop working after the cutover. Build a list of every place a Webex link lives, plan redirects or replacement messages, and confirm with Webex how long links remain active after you stop paying for the service. Room systems that dial Webex need their own replacement plan.

Migration sequence from inventory to Webex decommissioning

This sequence moves a Webex messaging and meetings estate to a self-hosted Matrix server with Element and Element Call in controlled stages, so each phase produces evidence before the next one starts. Webex is switched off only after the archive has been verified.

  1. Inventory rooms, spaces, users and integrations

    Export a list of Webex spaces, memberships, meeting schedules, licensed users, guest accounts, bots and integrations that post into spaces or start meetings. Mark each item as keep, migrate, archive or retire, and record who owns it. Confirm with Webex administrators which export options your tenant and plan actually allow, because message history and recordings may need different tools. The output is an inventory register, reviewed by the business owners of each space, that becomes the single source for later phases.

  2. Pilot on a non-production Synapse

    Deploy a non-production Synapse homeserver with PostgreSQL, Element Web and Element Call, and set server_name once because it fixes how user and room identifiers are written. Enroll a small pilot group, connect identity through your chosen single sign-on provider, and run test calls across the browsers and devices your users have. Rehearse a backup and restore of the database and media store. The output is a tested backup and restore record and a pilot report listing defects and their fixes.

  3. Decide federation and access controls before parallel run

    Set the federation policy with the security team before any real users join. Use federation_domain_whitelist to list only approved partner domains, or leave it empty to disable federation, and firewall the federation listener as the configuration manual recommends. Document which accounts can create rooms and which networks can reach the homeserver. The output is an approved access and federation standard, signed by the CISO or delegate, that the cutover checklist references.

  4. Run a parallel period with coached users

    Keep Webex and Matrix open at the same time. Move migrated spaces into Matrix in a defined order, publish short guides on creating rooms, joining Element Call and finding recordings, and hold coaching sessions for each group. Track which teams still post in Webex and why, and close the gaps with the owners. The output is a usage log and a list of unresolved blockers with named owners, reviewed weekly until the blockers are cleared.

  5. Verify the archive before cutover

    Export the Webex content you must keep, including recordings and messages, in the formats the vendor provides, and store them in a retention location you control. Check that a sample of each type opens and that counts match the inventory register. Confirm that anything you cannot export, such as content the platform does not release, is recorded as an accepted loss. The output is a verified archive report signed by the data owner and the compliance lead.

  6. Cut over identities and rooms on a dated switch

    Choose a cutover date, freeze new Webex space creation, migrate remaining rooms and set Webex meeting links to point to the new Element Call entry points. Switch user sign-in to the production identity provider and confirm that the production backup job has completed a successful run before the switch. Use a written checklist covering DNS, certificates, TURN and network paths, and rollback steps with the criteria that trigger them. The output is a signed-off cutover checklist with timestamps for each action.

  7. Decommission Webex after the archive is confirmed

    After a stable period in production, remove Webex user licenses and integrations, revoke API tokens and service accounts, and disable the Webex site. Keep the verified archive and its access logs under the retention policy that applies to your records. Record the decommissioning decision and remove the Webex items from the access review. The output is a decommissioning record confirming that licenses, integrations and credentials were removed and that the archive is retained.

What drives cost and duration in a Webex to Matrix move

This table breaks down the cost components of replacing Webex messaging and meetings with a self-hosted Matrix stack, and the drivers that push each one up or down. Read it as a checklist for comparing written quotes, since the components are paid to different parties and recur at different rates.

Cost componentWho is paid or who carries itWhat drives it up or down
Internal staff timeYour platform, identity and security staff, plus messaging administratorsNumber of Webex spaces to map, admin familiarity with Matrix and Element, and how much change control your organization requires
Synapse and worker infrastructureYour cloud or data center budget, and the implementer for sizing and deploymentConcurrent users, message volume, and whether you add worker processes and Redis for scale
PostgreSQLYour database operations team or managed database service providerDatabase size after message history migration, backup retention, and high availability requirements
TURN and Element Call mediaNetwork and infrastructure teams for bandwidth and TURN hostingNumber of simultaneous calls, participant counts per call, and media bandwidth available on your network
LiveKit and authorization servicesYour operations team, plus any implementer work to integrate themNumber of call components to run and monitor, and whether they sit in the same environment as Synapse
Identity integration (SSO)Identity team and implementer for OpenID Connect, SAML2 or CAS configurationNumber of identity providers, attribute mapping rules, and whether group-based access must be replicated
Testing, migration and trainingImplementer for test plans and cutover work, and internal users for acceptance and trainingNumber of integrations, recording volume to move, and number of user groups needing separate guidance
Ongoing operations and upgradesYour operations staff, or a retainer with an implementer for upgrades and supportUpgrade frequency, Python and PostgreSQL version support windows, and how much testing each release needs

What usually goes wrong and how to prevent it

Most failed Webex to Matrix migrations fail on operations, not features: a server that cannot be rolled back, a federation listener nobody meant to open, or a parallel run that never ends. The cards below name the risk, why it matters for this move, and the check that prevents it.

Rollback after schema changes

Synapse releases change the database schema, and the upgrade notes warn that rolling back can be difficult. Treat each Synapse upgrade as a one-way step unless you have tested a restore. Before every upgrade, take a consistent PostgreSQL backup, rehearse a restore on a separate host, and record the exact version you are moving from. Confirm the rollback path with your Element contact or in the upgrade notes before the change window opens.

Unsupported PostgreSQL and Python

Synapse drops support for Python and PostgreSQL versions once upstream reaches end of life, so a server that runs unchanged for a year can fall out of support without any visible fault. Synapse 1.143.0 and later require PostgreSQL 14 or newer, and 1.142.0 and later require Python 3.10 or newer. Put database and runtime versions on your patch calendar, and check them against the release notes before you plan each Synapse upgrade.

Federation exposed by accident

Synapse federates on port 8448 by default, so a server built with a public listener can talk to any homeserver unless you restrict it. For a company that only needs internal chat, set federation_domain_whitelist to the domains you intend to allow, use an empty list if federation is not needed, and firewall the federation listener at the network edge. Test from an outside host that port 8448 is closed when it should be.

HTTPS and TURN misconfiguration

Element Call depends on correct HTTPS on every public hostname, and calls fail in ways that look like client bugs when certificates, delegation or media relay are wrong. Check the certificate chain for the homeserver, the Element web host and the call components, confirm that delegation resolves user IDs such as @user:example.com to the right host on port 443, and test calls from networks outside the office. Confirm with your network team which media ports and relay paths your firewalls allow before users are moved.

Parallel chat in Webex

During a parallel run, teams that keep messaging in Webex split their conversations across two systems, and the Matrix room history stays incomplete. Set a dated freeze for each team, announce it with the new room links, and make Webex spaces read-only once the move is complete. Ask the business owners to confirm which spaces must move before the freeze, not after it.

Losing archive access

Webex retention settings and export rights control what you can take out, and a contract ending can cut access faster than the migration plan expects. Export message and file archives while the Webex contract is still active, store them in a location your compliance team controls, and check the result by opening samples. Ask Webex and your compliance lead what can be exported, in which format and for how long access remains after the end date.

How the migration differs by organization size and starting point

A single-site organization with a modest user base usually has the smallest migration. One Matrix homeserver, one identity source and one set of rooms can cover the whole company, and the main work is moving people and their history across in a short, planned window. The design can stay simple: a single Synapse instance with PostgreSQL, Element for clients and Element Call for meetings, with federation switched off unless there is a reason to talk to other servers. Because there are few moving parts, the cutover can usually be run as one event with a clear rollback point.

  • Scope: Map the Webex spaces that matter and archive the rest, rather than recreating every historical space.
  • Identity: Decide whether accounts are created locally or come from the existing directory through an OpenID Connect or SAML2 provider configured in Synapse.
  • Federation: Keep the federation setting restrictive (an empty list disables federation) unless partners need to reach you.
  • Cutover: Run one dated switchover, with a freeze on new Webex spaces and a short period of parallel access.
  • Operations: Confirm who will apply Synapse upgrades, since upgrade notes warn that rollback can be difficult after schema changes.

Before committing, confirm with your team how many users and concurrent meetings you expect, and whether the single site has a stable connection for Element Call media.

Questions buyers ask before moving from Webex to Matrix

How much effort and cost does a move from Webex to Matrix involve?

The cost is mostly people time and infrastructure, not software licences, because Synapse and Element are open source. Plan for one-time work: server design, deployment, identity integration, client rollout, migration of users and rooms, and training. Recurring costs are the servers and bandwidth you run, the staff who patch and upgrade Synapse and its database, and backups. Costs rise with user count, the number of rooms and history to move, the number of integrations (single sign-on, bridges, Element Call infrastructure), and how many sites need media close to users. Costs fall when you reuse existing identity and database operations skills. Ask any quote to itemize each of these components separately, and to state which items are one-time and which recur.

How long does a Webex to Matrix migration take?

Duration depends on scope, and no fixed timeline applies to every organization. The largest variables are the number of users and rooms, the volume of history you need to keep, how many identity and access integrations must be wired up, and whether you run a parallel period where both Webex and Matrix are live. Synapse upgrade planning also adds time, since the upgrade notes warn that rolling back can be difficult because of database schema changes between releases. A pilot group followed by staged waves usually takes longer than a single cutover, but it lowers risk. Ask for a written schedule with milestones and an explicit parallel-run period before work starts.

What does our team need to provide for the project?

Your team needs to supply decisions and access more than hands. Expect to define the server_name for your users and rooms, since it fixes how identities are written and cannot be casually changed later. You will need a DNS and TLS plan, a database host that meets the PostgreSQL version Synapse requires, network rules for media and federation ports, and an identity provider for single sign-on through OpenID Connect, SAML2 or CAS. Someone must own the Webex side too: usage inventory, a list of spaces and their members, retention rules and the sign-off on what history is migrated. Confirm these responsibilities in the scope document so gaps are visible before the project starts.

Can our IT team run this migration alone, or do we need outside help?

A capable platform team can deploy Synapse, Element and Element Call from the published documentation, and many do so for pilots. Outside help is most useful where the risk concentrates: architecture for scale, the workers and Redis layout, federation controls, identity integration, upgrade and rollback planning, and the migration of messages and users from Webex. Fixed-scope engagements with DeployOpen cover planning, implementation, customization, integration, hardening, backup and documentation inside your infrastructure, and ongoing support or upgrades can run as a retainer. DeployOpen does not issue audit reports or certifications, so compliance evidence still comes from independent auditors.

Does chat history from Webex move to Matrix?

Not automatically, and you should not assume it does. Matrix has no built-in importer for Webex spaces, so historical messages need a documented export and a conversion or import path that your team or implementation partner must build and test. Message attachments, reactions, edits, thread structure and membership history may map imperfectly. Some Webex data may not be exportable in a usable form at all. Before committing, ask the Webex administrator what export formats your tenant provides, request a sample conversion in a test room, and decide which history must be kept, which can be archived read-only, and which can be left behind.

Does Element Call fully replace Webex meetings?

Element Call covers voice and video calls on Matrix, but check it against your meeting requirements before assuming full replacement. Confirm the features you rely on today, such as large meetings, recording, webinar-style broadcasts, dial-in from phones, room systems and calendar integration, and test each in a pilot. Element Call uses a LiveKit SFU and related authorization services that you must operate, so the media path, capacity and failure handling need their own design. Where a feature is missing, a parallel meeting tool such as Jitsi Meet or BigBlueButton may be a better fit for that use case, and this should be decided in the scope rather than discovered after cutover.

How does licensing differ between Element Server Suite Community and Pro?

The Element Server Suite Community includes Element Call alongside Synapse, and it is distributed under the AGPL, so you can deploy it without a licence fee. Element's commercial terms are separate: Synapse is developed by Element and distributed under AGPL-3.0, with commercial licenses also available from Element, and since December 13, 2023, contributions to Synapse have been licensed under AGPLv3 with contributors signing a CLA. If your organization wants to avoid AGPL obligations for modified code, a commercial exception is one option. Confirm the exact features of the Pro edition on Element's pricing page and ask for licence terms in writing before choosing either path.

How DeployOpen scopes, runs and supports the migration

DeployOpen is a Chainscore Labs company that plans, implements, integrates, hardens, backs up, upgrades and documents self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For a move from Webex messaging and meetings to Matrix with Element and Element Call, we start with the written scope, then build and test the platform in your environment before any user is moved.

How we scope

  • Inventory which Webex spaces, meeting types and integrations need replacing, and which stay until a later phase.
  • Agree in writing the Synapse homeserver, database, Element Call and TURN components, and the identity provider used for sign-in.
  • Confirm federation posture, retention rules and where chat and media data must physically reside before design starts.

How we build

  • Deploy Synapse with PostgreSQL in your infrastructure, with server_name and delegation planned before any users are created.
  • Configure Element Call with its supporting services, then test audio, video and screen sharing across your network paths.
  • Run security testing on the homeserver, APIs and the federation listener, and document the firewall rules that restrict federation.

How we hand over

  • Provide runbooks for upgrades, database backups, worker scaling and Synapse version changes, including the rollback limits in the upgrade notes.
  • Document the configuration keys, access model and compliance evidence your auditors will request, without issuing any audit report.
  • Run a cutover rehearsal with a pilot group, then agree the go-live and Webex decommissioning steps in writing.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • Plan recurring work for Synapse releases, PostgreSQL and Python version support, and certificate renewals.
  • Confirm with us during scoping which parts of the migration are fixed-scope and which should move to a retainer.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.