How to export your data from Intercom

Intercom offers several export routes, and only the Conversations API returns full message history. This guide maps each route, its gaps, and the sequence for a complete export before renewal.

On this page

How to export your data from Intercom before your contract ends

Intercom's export routes cover different slices of your data, and only the Conversations API returns full message history. If a renewal, a pricing change, a data residency rule or a plan to leave has put your support records in motion, you need to know which route delivers which content before you rely on any of them. The main routes are PDF and text transcripts, which are produced in batches of a few hundred conversations, a CSV of reporting metadata that carries no message content, and a JSON export to Amazon S3 that omits transcripts. Each one answers a different question, so none of them alone is a complete archive.

The practical gap is between metadata and content. A CSV can tell you how many conversations were opened, when they closed and who handled them, but it cannot reproduce what customers and agents wrote. Transcript exports keep readable text, yet their batch limit means you must reconcile batch counts against your total conversation volume from reporting. Build a simple checklist: total conversations, total batches exported, and a sample of conversations checked for attachments, internal notes, contact attributes and tags. Ask Intercom to confirm in writing which fields each route includes for your workspace and plan, because export behavior can change.

Verify the export before you give notice or cancel. Run the Conversations API pull for a sample of conversations, load them into a second system, and confirm message order, timestamps, author names and attachment links. Keep the full API extract as your archive of record and schedule it early, leaving time to rerun it if a sample fails. Keep workspace access until verification is complete, and check in your contract what happens to data after cancellation, including how long Intercom retains it. Your own export evidence is what protects you if a gap appears later.

What Intercom exports, in which format, and with which limits

This table lists each documented Intercom export route, the data it carries, its format and the gaps that matter for a migration. Read the missing column first, because message content is the item most often left out. Confirm every limit against Intercom's current export documentation and your plan before you plan a cutover.

Data typeExport methodFormat and limitsWhat is missing
Conversation transcripts (PDF and text)Export of selected conversations from the Intercom inboxPDF and text files delivered in batches; confirm the current batch size in Intercom's export documentationStructured fields for reporting and re-import; output is for reading, not for loading into another system
Reporting metadata for conversationsCSV export from Intercom reportingFlat CSV rows with timestamps, assignees, tags and status; confirm row limits for your planMessage content, attachments and the full conversation thread
Contacts, conversations and events in bulkJSON export to Amazon S3JSON files written to an S3 bucket you control; confirm eligibility and file limits with IntercomConversation transcripts, so chat history must come from another route
Full conversation history with messagesConversations API (paginated REST calls)JSON responses per conversation; rate limits apply, so confirm current limits and plan allowancesNothing in principle, but scripting, paging and retries are your effort to build and run
Help Center articles and collectionsHelp Center export or API readsArticle content and structure; confirm which formats Intercom currently offersArticle history, redirects and in-widget search settings usually need manual rebuilding
Users, companies and tagsCSV or API export of contact recordsAttribute columns with custom attributes as separate fields; confirm attribute naming rulesMessage history linked to each contact, and internal notes unless requested through the API
Attachments and uploaded filesIncluded in some transcript exports or fetched via API linksFiles keep their original type; confirm whether links expire before you downloadFiles may be absent from CSV and S3 exports, so check each route before you rely on it

What does not export in the standard routes and how to recover it

The standard Intercom routes return reporting metadata and some transcripts, but they leave out message bodies, configuration and the logic that drives your support operation. Each gap below needs a named recovery path and a question to Intercom before your team treats it as closed.

Message content outside the API

CSV reporting exports carry conversation metadata, and the JSON export to Amazon S3 carries no transcripts, so message bodies, internal notes and attachments are missing from both. The documented route for full history is the Conversations API, which needs a token with read access and a script that pages through every conversation. Before you rely on it, confirm with Intercom which objects the API returns, whether private notes and attachments come back, and how deleted or redacted messages appear.

Messenger and widget settings

Messenger appearance, launcher placement, home screen content and the install snippet are configuration rather than conversation data, and no standard export is documented to return them. Capture them now by screenshotting every settings screen and copying the install snippet from each site where it runs. In Chatwoot, rebuild the website live chat widget and its inbox, then test on a staging page before swapping the script tag. Ask Intercom whether any admin export covers Messenger settings.

Inbox routing and assignment rules

Routing rules decide which team or teammate receives a conversation, and they explain assignments visible in your transcripts. A standard export shows the outcome of those rules, not the rule definitions themselves. Document each rule's conditions, priority order and fallback from the admin screens, then rebuild them as Chatwoot auto-assignment with teams and labels. Ask Intercom whether rule definitions and their change history can be exported at all.

Automation and workflow definitions

Automated messages, bots and workflows hold logic that customers experienced, and no export route is documented to return that logic. Inventory each automation with its trigger, conditions, actions, schedule and any business hours it depends on. Chatwoot offers auto-responders, business hours and automation, so map each item to a native feature or mark it for redesign. Confirm with Intercom whether workflow definitions appear in any data export or only in the admin interface.

Help Center articles and collections

Articles, collections, translations and redirects make up the public knowledge base that customers and Fin both read. Check whether your export route returns drafts, translated versions and collection order, because a published article is not the same as its source content. Plan to move articles into the Chatwoot Help Center portal, then verify internal links and search results on the new domain. Confirm which Help Center content the API returns and whether custom domain settings are included.

Fin AI agent configuration

Fin's behavior depends on the knowledge sources it reads, the guidance you wrote, its handoff rules and the content it was allowed to answer from. None of these are conversation records, so treat them as configuration to document. Record each source, instruction and escalation path, then test a sample of past questions against the target setup. Chatwoot's Captain works with its own setup, so each Fin setting must be rebuilt from its intent and not copied. Confirm with Intercom whether any Fin configuration can be exported.

How the Conversations API pulls full history where the exports stop

The Conversations API is the route to complete transcripts, because it is the only option in this topic that returns the message content of each conversation along with its history. Plan it as a scripted bulk pull, not a click-through task. The API returns results in pages, so the script must follow the pagination cursor until the last page and record where it stopped. Rate limits will throttle a full history pull, so the script needs retries with backoff and a checkpoint that lets it resume after a failure. Confirm the current limits and pagination parameters in Intercom's developer documentation before you size the job, since these are the settings most likely to change.

The team, or an engineer it hires, owns the script and the output. Authentication uses an access token, so decide who creates it, how it is stored in a secrets manager, and how it is rotated. Store the raw JSON responses unchanged in object storage or on disk, with a manifest that lists each conversation ID, the page it came from and the pull date. This keeps the archive auditable if someone later asks how a record was produced. The output format is also the team's decision. A transcript export only helps if the chosen fields, such as author, timestamps, conversation state and attachment references, are documented and can be loaded into the new platform.

The API returns only what the token's permissions allow, so a pull made with a limited token can silently miss conversations, teams or contact data. Before the full run, have someone who knows the workspace check that the token can see every inbox and team that needs archiving. Then run a small test pull, reconcile its counts against the conversations visible in Intercom, and record any gaps. Ask Intercom which objects, such as attachments or archived records, fall outside the Conversations API so you can plan a separate route for them. A signed-off reconciliation report is the evidence that the archive is complete.

Which export route fits which goal

A compliance or legal hold archive has to show what was said, when it was said, and that the record has stayed intact. The PDF and text transcripts are the only routes in this set that carry message content in a form reviewers can read, so they usually form the core of the archive. Because they arrive in batches of a few hundred conversations, the team has to track which batches ran and confirm that none were skipped.

  • Transcripts as the readable record: PDF or text transcripts keep the conversation content that reviewers and counsel will read.
  • Batch coverage log: Record each batch's date range and conversation count so any gap can be shown and explained.
  • Metadata alongside: Pair transcripts with the CSV reporting metadata for identifiers and timestamps that the transcript does not display prominently.
  • Insufficient alone: The CSV and S3 routes omit message content, so neither one proves what was said.

Confirm with counsel or your auditor which formats and metadata they accept, how the archive will be stored and checked for integrity, and who holds custody of it.

The sequence for a complete export with verification

This sequence turns scattered Intercom exports into one verified archive that you control, with a checksum manifest, a reconciliation report and a signed record of what was and was not captured. Each step produces an artifact that the next step checks.

  1. Inventory the workspace and data types

    The workspace owner lists every data type in scope: conversations, contacts and companies, help center articles and collections, reports, tags, teams, attachments and automation settings. For each type, record the export route that covers it (transcript export, reporting CSV, S3 JSON or the Conversations API) and the owner who will run it. The artifact is a signed inventory sheet. It is complete when every data type maps to at least one route and no type is marked as unassigned.

  2. Confirm plan, admin rights and API access

    The workspace admin confirms in writing which export features the current plan includes, who holds the admin role needed to run them, and which access token will call the Conversations API. Ask Intercom to confirm any feature whose availability is unclear for your plan. The artifact is an access record listing roles, token owner and token scope. It is complete when a single test request to the Conversations API returns a known conversation, and the token owner has been recorded.

  3. Run the reporting and transcript exports

    The operator runs each export route from the inventory: reporting CSV files, PDF or text transcripts in batches, and the JSON delivery to Amazon S3. Name each file with its route, date range and batch number, and keep the files in a staging folder. The artifact is a batch log showing every file, its size and its route. It is complete when the batch count for each route matches the inventory, and every gap in batch numbering is explained in the log.

  4. Script the Conversations API pull

    The engineer writes a versioned script that pages through the Conversations API and saves each conversation, including its full message history, as raw JSON. The script records pagination cursors, timestamps and any failed requests so they can be retried. The artifact is the script in version control plus one raw JSON file per conversation. It is complete when the number of conversation IDs saved matches the conversation count in the inventory, and every failed request has been retried or logged.

  5. Store output in client-controlled storage with checksums

    The engineer moves all staging output into storage that your team controls, such as a bucket or file share in your own cloud account or data center, with encryption at rest and access limited to named roles. The engineer generates a manifest listing each file with its SHA-256 hash. The artifact is the manifest. It is complete when the hashes recomputed from the stored copies match the manifest exactly, and the access list has been reviewed by the data owner.

  6. Verify record counts and sampled transcripts

    A second person reconciles the archive against Intercom. They compare record counts for conversations, contacts and articles with the figures shown in Intercom, then pick a random sample of conversations and check that the archived messages, timestamps and author names match what Intercom displays. The artifact is a reconciliation report listing counts, sample IDs and any mismatches. It is complete when every mismatch has a recorded cause and a fix or a documented gap.

  7. Document gaps in a gap register

    The owner lists everything the export does not capture or captures only in part, such as automation rules, third-party app data, Messenger configuration, or any attachment the API does not return. For each gap, the owner records the reason, the business impact and whether it will be rebuilt manually or accepted. The artifact is a gap register with an owner and a decision for every line. It is complete when no gap lacks a decision and the open items have been confirmed with Intercom or your own records.

  8. Sign off the archive before any cancellation

    The data owner, the security lead and the business owner each sign the archive acceptance record, which references the manifest, the reconciliation report and the gap register. No subscription changes or account closure happen until all three signatures are on file and the archive has been opened successfully by someone outside the export team. The artifact is the signed acceptance record. It is complete when all three approvals are dated and stored with the archive.

What to plan before renewal or termination

Intercom exits tend to fail on timing rather than tooling. The cards below cover the items to settle before the contract end date, from the notice and retention terms to the sign-off on the final archive.

Contract notice and retention terms

Before anything else, read the Intercom agreement for the notice period, the date service ends, and how long Intercom keeps your data after termination. These terms set your real deadline, which may be earlier than the renewal date you have in mind. Ask Intercom to confirm in writing when read access to conversations ends and whether it will provide a full export on request. If the answer is unclear, do not assume the export routes you have tested will still be available at the end.

Time for a full API pull

Pulling full conversation history through the Conversations API is the only route in this guide that includes message content, so it takes the longest. Plan for rate limits, paginated requests, retries and storing each response in a durable format. Budget time for the pull to run, then for checking record counts and spot-checking transcripts against the Intercom interface. Ask Intercom which API rate limits apply to your plan and whether a higher limit is available for a one-time bulk pull.

A test export well before the deadline

Run a complete test export early, using the same scripts and storage you will use at cutover. The test shows which conversations fail, which attachments are missing, and whether your archive opens in the format your records team needs. A failed test leaves time to change the approach, for example by asking Intercom for help with a bulk data request. Keep the test log, because it becomes evidence that the archive was checked.

Freeze on configuration changes

Once you start exporting, stop editing inboxes, teams, automation rules, macros and help center articles, or record every change with a date. Changes made after the export snapshot will not appear in your archive, and you may need to rebuild them later in Chatwoot or Zammad. Agree the freeze date with support leads and the people who own automation. Ask Intercom to confirm whether its audit history and configuration exports are available before the freeze begins.

Parallel running before cutover

Keep Intercom live while the replacement is tested with real traffic, so a gap in the new widget or routing does not stop customer conversations. Parallel running also means deciding which system answers new chats on each day and how replies that started in one system are closed. Confirm with Intercom how long your subscription keeps the Messenger active after the notice date, since that window sets how long you can run both systems.

Sign-off on the archive

Name one owner who accepts the final archive, usually a combination of the business owner for customer records and the compliance or legal lead. The sign-off should cover what is included, what is missing, where the archive is stored, who can access it, and how long it is kept. Record each exception, such as attachments that could not be retrieved, so the gap is documented before Intercom access ends. Ask the vendor for written confirmation of the deletion timeline once the archive is accepted.

Questions buyers ask before exporting Intercom data

Can our team export Intercom data on its own?

Yes, for a partial export. A workspace administrator can run the built-in exports, which produce PDF or text transcripts, CSV reporting metadata, or JSON delivered to Amazon S3. None of these gives you complete conversation content in one structured file that a helpdesk can import. A full history requires the Conversations API, which needs an engineer to write and run the pull, handle pagination and retries, log every request, and map results to the target system. Teams with an admin account and an engineer comfortable with REST APIs can often do this in-house. Teams that must prove completeness to a regulator or auditor usually want an outside review of the process. Confirm current export options and access levels in your own workspace before you plan.

What makes an Intercom data export take longer?

Scope and target format drive the effort more than anything else. The main factors are:

  • Conversation volume: more threads mean more API calls, longer runs and more validation work.
  • Attachments: files are retrieved separately from message text, so each one needs its own download, checksum and storage path.
  • Custom data attributes: contact and conversation fields must be mapped to the fields the target system uses.
  • API rate limits: large pulls run in throttled batches, so the script must resume cleanly after interruptions.
  • Target format: an archive for legal hold has different structure requirements than an import into Chatwoot or Zammad.

Each factor multiplies the others, so a clear written scope is the best control on effort.

How long does an Intercom export take?

The duration depends on scope, and no timeline is given here. Volume, attachment count, field mapping complexity, number of target systems and the number of review cycles all change the schedule. A small archive of recent conversations with simple fields is a very different job from a multi-year history with attachments and custom attributes moved into a self-hosted system. Ask for a written schedule tied to a defined scope. It should show the sample run, the reconciliation checkpoints, the sign-off dates and what happens if a validation check fails. A schedule without those milestones is hard to hold anyone to.

What does our team need to provide for an Intercom export?

Four things, at minimum:

  • An Intercom admin account with rights to run exports and create API access.
  • An engineer to build and run the Conversations API pull, including pagination, retries and logging.
  • Storage for raw exports, attachments and checksums, with access controls and a retention setting.
  • A named owner who signs off on scope, sample results and final acceptance.

The owner should come from support operations or compliance, not only IT, because that person decides what counts as complete. Plan time for that person to review samples. Without a clear owner, the export tends to stall at the acceptance step.

Is an Intercom export enough to move into Chatwoot or Zammad?

Usually not on its own. PDF, CSV and JSON files are archives, and a helpdesk needs records mapped to its own objects: contacts, conversations, messages, attachments, agents and teams. Zammad's built-in migrators cover Freshdesk, Kayako, OTRS and Zendesk, and its migration documentation describes the API route for other systems. Confirm with Chatwoot which import paths it supports for Intercom data today. In either case, test the import on a sample in a separate instance, reconcile record counts, and plan a period where both systems run during cutover.

How do we confirm an Intercom export is complete before deleting anything?

Keep the source workspace unchanged until the owner signs off. Compare conversation and message counts against the source, confirm that every attachment was downloaded and matches its recorded checksum, and spot-check threads against the original in Intercom. Record each check with a date, the person who ran it and the result, so the evidence can be shown later. This record supports compliance readiness, but an independent auditor or certification body makes any formal determination. DeployOpen prepares these controls and evidence and does not issue audit reports or attestations.

What does a fixed-scope DeployOpen engagement cover for an Intercom export?

DeployOpen plans, implements and documents the export inside your own environment, whether that is your cloud account, data center or air-gapped network. Engagements are fixed-scope, so the scope, deliverables and timelines are agreed in writing before work starts. Typical work includes reviewing the current data and sources, designing the export, building and running the API pull, handling attachments, running validation checks, preparing sign-off evidence and writing the runbook. Your legal and compliance teams decide what must be retained. DeployOpen does not publish a price list, and a quote follows from the written scope. Ongoing support is available as a retainer.

How DeployOpen scopes and delivers an Intercom data exit

DeployOpen is a Chainscore Labs company that plans, implements, integrates, hardens, backs up and documents self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For an Intercom data exit, we treat the export as a scoped engineering project: first confirming which records you need, then building and verifying an extraction you can keep as evidence.

How we scope

  • Inventory which Intercom data you need: conversations with full transcripts, contacts, attachments, reporting metadata and help center articles.
  • Confirm which export route covers each data type, since PDF, CSV and S3 exports do not carry full message content.
  • Agree the scope, deliverables and timeline in writing before any extraction work starts, as engagements are fixed-scope.

How we build

  • Build the extraction against the Intercom Conversations API, with a pipeline that resumes safely after rate limits or interruptions.
  • Normalize records into a target format and validate counts, timestamps and attachment links against the source workspace.
  • Test restores into a staging instance so you can see the exported history before the source is closed.

How we hand over

  • Document the export procedure, data mapping, known gaps and the checks used, so your team can rerun or audit it.
  • Deliver the extracted archive and scripts into your own storage, with access controlled by your team.
  • Walk your administrators through the handover so the knowledge stays inside your organization.

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer after the handover, if your team wants it.
  • Provide prepared systems and evidence for your compliance assessments, while independent auditors issue any formal opinion.
  • Confirm with you in writing before any change to scope, so cost and timing stay visible throughout the engagement.

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.