- Docs
- Guides
Import history from another live chat
Switching to TalkingDot doesn't mean starting from zero. Bring your conversation history, contacts, tags and ratings from the tool you use today. Imports are read-only on the other side, run in the background, and never count toward your monthly conversation limit.
Start an import
- Open Settings → Import history (workspace owners and admins).
- Pick the tool you're coming from. The page shows exactly where to find the token or export file in that tool.
- Paste the token or upload the file and click Start import. You can leave the page — we email you when it's done, and the page shows live progress.
Good to know: tokens are stored encrypted and deleted the moment the import ends; uploaded files are deleted too. Running the same import again only adds what's new — nothing is duplicated.
Supported tools
| Tool | How | Notes |
|---|---|---|
| Intercom | Access token from a Developer Hub app | US, EU and AU data regions. Intercom returns at most the newest 500 parts of a conversation. |
| tawk.to | Inbox → Export (ZIP of JSON) | tawk.to exports 50 chats at a time — upload several ZIPs together. |
| Crisp | Website API token (identifier + key) and Website ID | Crisp allows 10,000 API calls a day; large histories continue by themselves the next day. |
| LiveChat | Personal access token with chats--all:ro | One API call brings up to 50 conversations. Starter plans only expose 60 days. |
| Zendesk | Full JSON export of Tickets (+ Users) | Messaging, Chat and email tickets with comments and internal notes. Exports are available on Suite Growth / Support Professional and up. |
| HubSpot | Private app token (conversations.read, crm.objects.contacts.read) | Works on HubSpot's free tier. |
| Freshchat | Chat Transcript Report CSV (Historical Reports app) | Up to 30 days per report — upload several at once. |
| Tidio | "Export transcript to .CSV" per conversation | Tell us your team's names so their replies are imported as agent replies. |
| Chatwoot | Administrator access token + Account ID | Cloud or self-hosted (https). |
| Help Scout | App ID + App Secret (My Apps) | Chat, email and phone conversations. |
| Anything else | CSV or JSON in the format below | Most tools can export a CSV. |
What comes across
- Conversations and messages in their original order and times, with visitor, teammate, bot and internal-note messages kept apart.
- Contacts: matched by email to people you already have (blank details are filled in), or created. Placeholder names like “V1635821680629707” are left out.
- Teammates: replies are linked to a teammate with the same email address; anyone else keeps their name.
- Tags, ratings, subjects and assignees where the tool provides them, plus a tag of your choice (for example
imported-intercom). - Attachments are copied into your workspace's storage (allowed file types only). Files that can't be copied are named in the message.
- Everything arrives closed, so your inbox stays calm — or tick “Keep conversations that are still open there open here”.
Your plan's history applies to imports too: conversations older than your plan keeps (3 months on Free, 1 year on Pro, everything on Lifetime) are skipped, because they would be removed right away. Your own auto-delete setting in Settings → Data & privacy applies as well.
Stop or undo
A running import can be stopped at any time. Undo deletes every conversation the import created and the contacts it created — unless someone has talked to you since. Conversations and contacts that existed before are never touched.
CSV format
One row per message. Column names are matched loosely (case doesn't matter, and common alternatives like body, sender or timestamp work too).
| Column | Required | Meaning |
|---|---|---|
conversation_id | Yes | Groups rows into conversations. |
message | Yes | The text of the message. |
created_at | Recommended | ISO 8601 (2026-03-01T14:05:00Z) or a Unix timestamp. |
author_type | Recommended | visitor, agent, bot, note (internal note) or system. |
author_name, author_email | No | Who wrote it. Agent emails link replies to your teammates. |
contact_name, contact_email, contact_phone | No | The visitor. |
subject, status, tags, attachment_url | No | Tags are comma-separated; status open keeps it open. |
conversation_id,created_at,author_type,author_name,author_email,message,contact_email,tags
1001,2026-03-01T14:05:00Z,visitor,Kim,,Do you ship to Canada?,kim@example.com,"shipping, ca"
1001,2026-03-01T14:06:10Z,agent,Arek,arek@yourshop.com,We do — 3 to 5 days.,,
1001,2026-03-01T14:07:00Z,note,Arek,arek@yourshop.com,Offer a coupon next time,,
JSON format
A list of conversations (or {"conversations": [ … ]}, or one conversation per line):
[{
"id": "1001",
"status": "closed",
"subject": "Shipping to Canada",
"created_at": "2026-03-01T14:05:00Z",
"contact": {"name": "Kim", "email": "kim@example.com", "phone": null, "country": "CA", "tags": ["vip"]},
"assignee": {"email": "arek@yourshop.com"},
"tags": ["shipping"],
"rating": {"score": 5, "comment": "Super quick!"},
"messages": [
{"at": "2026-03-01T14:05:00Z", "author": "visitor", "text": "Do you ship to Canada?"},
{"at": "2026-03-01T14:06:10Z", "author": "agent", "email": "arek@yourshop.com", "name": "Arek", "text": "We do — 3 to 5 days."},
{"at": "2026-03-01T14:07:00Z", "author": "agent", "kind": "note", "text": "Offer a coupon next time"},
{"at": "2026-03-01T14:08:00Z", "author": "visitor", "text": "", "attachments": [{"name": "label.pdf", "url": "https://files.example.com/label.pdf"}]}
]
}]
author is visitor, agent, bot or system; kind is message (default) or note; messages can use html instead of text. Times can be ISO 8601 strings or Unix seconds/milliseconds. Ratings are 1–5.