Skip to content

The Complete Guide to Migrating from Enchant to Tidio

Migrating from Enchant to Tidio? Learn the exact API sequence to map contacts, transfer ticket history, and handle attachments while preserving data integrity

Tejas Mondeeri Tejas Mondeeri · · 6 min read
The Complete Guide to Migrating from Enchant to Tidio
TALK TO AN ENGINEER

Planning a migration?

Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.

Schedule a free call
  • 1,500+ migrations completed
  • Zero downtime guaranteed
  • Transparent, fixed pricing
  • Project success responsibility
  • Post-migration support included

Transitioning from Enchant to Tidio requires a thoughtful approach to ensure that your customer relationships and conversation histories are preserved.

Enchant and Tidio both offer powerful tools for managing communication, but they structure data differently.

By understanding these differences, you can execute a smooth transition that minimizes downtime and keeps your support team focused on what matters most.

Info

ClonePartner provides migration services for Enchant and Tidio. This guide reflects our implementation experience with both platforms.

What Cannot Be Migrated

Before scoping your project, establish what is categorically out of scope:

  • Operators and departments — must be created manually in the Tidio panel; no API endpoint supports creating departments.
  • Custom labels — Enchant labels have no direct 1:1 API mapping in Tidio; they must be recreated manually or approximated using Tidio's status and priority fields.
  • Attachments — there is no API endpoint for uploading files directly into Tidio's ticket history. Files must be hosted externally and linked from within message bodies.
  • Automation and workflows — routing rules, auto-responders, and keyword triggers from Enchant do not transfer and must be rebuilt in Tidio's flow builder.
  • Internal note type metadata — Tidio does not natively distinguish internal notes from replies via API; see the workaround in the migration steps below.

Field Mapping: Enchant → Tidio

The table below maps the most common Enchant objects and fields to their Tidio equivalents.

Enchant Object / Field Tidio Equivalent Notes
Customer Contact (Visitor) Identified by email, phone, or name
Customer email email contact property Direct map
Customer phone phone contact property Direct map
Customer name name contact property Direct map
Custom customer fields Custom contact properties Must be pre-created in Tidio before import
Ticket Conversation / Ticket Created against an existing contact ID
External reply (message) Ticket reply Posted via API in chronological order
Internal note Operator reply Prefix message body with INTERNAL NOTE: as a workaround
Attachment External file link Host file externally; embed URL in message body
Inbox Department No API creation; must be set up in Tidio panel first
Agent / Operator Operator Must be created manually with permissions set
Label Status / Priority field Approximate mapping only; no direct equivalent

Define Your Migration Scope

Determine how each piece of data will move:

  • Via API: Enchant customers and contact details, tickets, individual replies and messages.
  • Manual setup required: Operators, departments, custom labels, workflows.
  • Archive rather than import: Old or irrelevant data that does not serve your future goals should be stored in a separate database, not pushed into your live Tidio environment.

Prepare Tidio for Data Import

Before pushing any data through the API, build the structural foundation in Tidio. Data arriving without a valid target will fail or land in the wrong place.

  1. Create operators manually. Operators must be defined in Tidio settings with specific permissions before any ticket assignment can reference them.
  2. Create departments manually. Tidio uses departments to group operators. There is no API endpoint to create departments — they must be configured in the Tidio panel. Record the unique department ID for each one; you will need these during ticket import.
  3. Pre-create custom contact properties. Any custom metadata fields from Enchant must exist in Tidio before contacts are imported, or the batch will reject records referencing undefined properties.

Migrate Objects

The sequence matters. Each object depends on the previous one existing in Tidio before it can be associated.

Step 1 — Contacts

Migrate Enchant customers as Tidio contacts first. Tidio requires a contact record to exist before a ticket can be associated with it.

  • Map email, phone, and name directly.
  • Map any Enchant custom customer fields to the custom contact properties you pre-created in Tidio.
  • Validate all records before sending. Tidio's contact creation uses an all-or-nothing batch strategy: if one contact in a batch is invalid, the entire batch fails. A contact is invalid if it is missing a required identifier (email is the primary key), contains a malformed value, or references a custom property that does not yet exist in Tidio. Validate for these conditions locally before each batch submission.

Step 2 — Tickets

Once contacts exist, create the ticket records. A Tidio ticket is a conversation record linked to a contact ID. Create each ticket with the correct contact_id, department_id, and assigned operator_id pulled from your preparation phase.

Step 3 — Replies and Notes

Add messages to each ticket in chronological order.

  • External replies: Post as standard ticket replies via the API.
  • Internal notes: Tidio does not expose a separate internal-note type via API. Migrate these as operator replies and prefix the message body with INTERNAL NOTE: so agents can distinguish them visually.

Step 4 — Attachments

There is no API endpoint for uploading files directly into Tidio ticket history. For each attachment:

  1. Host the file on an external server (S3 or equivalent).
  2. Insert the file URL into the body of the relevant migrated message.

Post-Migration Configuration

  1. Rebuild labels and tagging. Manually tag tickets or use Tidio's status and priority fields to approximate Enchant label categories.
  2. Rebuild workflows. Recreate auto-responders and routing rules in Tidio's flow builder. Test each flow against new incoming tickets before going live.
  3. Verify department assignments. Any ticket not explicitly assigned a department ID defaults to the "General" department, which is visible to all operators. Review imported tickets to confirm correct department assignment.

Validation Checklist

Run these checks after import to verify migration fidelity:

  • Sample 10–20 tickets and compare reply count and chronological order against the Enchant source.
  • Confirm INTERNAL NOTE: prefixed messages are present and visible to operators.
  • Verify contact records include all custom property values.
  • Confirm each ticket is assigned to the correct department (not defaulting to "General").
  • Check that external attachment links resolve and the files are accessible.
  • Test at least one workflow automation with a live test ticket.
  • Confirm operator assignments match the intended routing.

Rollback Strategy

If the migration fails partway through:

  1. Do not switch DNS or support routing until validation is complete — keep Enchant live throughout the migration window.
  2. Tag all imported records with a migration batch identifier so they can be bulk-deleted if a re-run is needed.
  3. Keep a full export of Enchant data (tickets, contacts, messages) before starting. Enchant's API allows full data retrieval; store this snapshot before any writes to Tidio.
  4. If a batch fails mid-migration, your throttling script should log the last successful record ID so the run can resume from that point rather than restarting from zero.

Insider Secrets

Batch Validation Failures

Tidio's contact creation uses an all-or-nothing batch strategy. If one contact in a batch is invalid, the entire batch fails — no partial imports. Validate all records locally before submission.

Rate Limiting

Enchant limits accounts to 100 credits per minute. When pulling large ticket histories, build a throttling mechanism into your script. When the rate limit is hit, Enchant returns an error response (HTTP 429); pause all requests and resume after the backoff window before retrying.

The "General" Department Trap

The "General" department in Tidio is the default and is visible to all operators. Any ticket migrated without an explicit department ID will land here, cluttering specialized team views. Always pass a department ID explicitly during ticket creation.

Timestamp Preservation

When creating contacts and tickets via the Tidio API, pass the original created_at timestamps from Enchant into the corresponding Tidio fields. If the API does not accept a created_at override on a given object type, record the discrepancy in your migration log — do not silently drop the timestamp. This matters for SLA reporting and audit trails post-migration.

Summary

Migrating from Enchant to Tidio is a multi-step process that combines automated API calls with careful manual configuration.

By setting up your operators and departments first, followed by a logical sequence of contacts, tickets, and messages, you can ensure a high-fidelity transfer.

While some elements like internal notes and attachments require workarounds, the result is a clean, organized support environment in Tidio.

Further Reading:

More from our Blog