Contacts tell you who a lead is. Opportunities tell you what the deal is worth. Conversations are the only record of what was actually said, and in a GoHighLevel sub-account they are also the hardest thing to get a copy of. Every other major object has some kind of export button. Message history does not.

Here is the short version for anyone who came here mid-incident. There is no way to export conversations from the HighLevel dashboard. The only supported path to a real copy is the API, which has a dedicated message export endpoint that most agencies have never heard of. And the deletion behavior is the part people get wrong: conversations do not have their own delete or restore, they live and die with the contact, and HighLevel’s own documentation currently contradicts itself about whether restoring a contact brings the messages back.

That last point deserves the detail, so start there.

Can you export HighLevel conversations from the dashboard?

No, and it is worth being precise about how thoroughly no.

The conversations tab is a reading interface. You can scroll a thread, search across threads, filter by channel and status, and open a contact’s history, but there is no download anywhere in it. The contact CSV export, the one most agencies think of as their backup, carries contact fields: names, phones, emails, tags, custom fields. It does not carry a single message. We went through what that export actually captures in our post on exporting HighLevel contacts, and the messages are the largest thing it leaves behind.

LC Phone’s Messaging Analytics screen looks like it might be the answer, since it shows message-level detail for sent, delivered, failed, and received counts, and lets you click through to the underlying conversation. It is not. HighLevel’s help documentation for that screen answers the question directly: exporting is not available from the Messaging Analytics UI, and the suggested workaround is to take screenshots or refer to the logs in the conversations tab. Screenshots are not a backup, and nobody has ever screenshotted forty thousand SMS threads.

The closest thing to a native file is the LC Communication billing export, which downloads your phone, email, and WhatsApp charges as a CSV and can show a message-by-message log of transactions. That is billing metadata. It tells you that a message was sent, to what, and what it cost. It does not contain what the message said, which is the part you need when a client asks why their lead is angry or when someone disputes what was promised on a call.

What happens to conversations when a contact is deleted?

Conversations have no independent lifecycle. There is no delete button for a thread, and no trash can it goes to. What exists is contact deletion, and the conversation is one of the things it takes.

The messy part is that HighLevel documents this two different ways. The help article on deleting contacts carries a warning in two separate places stating that once a contact is deleted, all associated data such as conversations, notes, tasks, and activity history is permanently lost, and that restoring the contact will not recover it. The article on the revamped Restore page, updated in October 2025, says the opposite in its own list of what restoration includes: opportunities, notes and tasks, conversations, appointments, and workflow and campaign participation. Its FAQ repeats it, with a qualifier worth reading twice, that restored contacts regain their associated data unless it was deleted separately.

Our reading is that the restore article reflects the newer behavior and the delete article carries a warning that was written for the older one. But you should not have to guess, and this is not a question you want to be researching at 11pm with a client on the phone. Treat the pessimistic version as your planning assumption. If conversations matter to your business, do not let their survival depend on which of two help articles happens to be current.

Two boundaries are not in dispute. The restore window is 60 days from deletion, after which the contact and everything attached to it is permanently gone. And in HIPAA-compliant accounts, deleted contacts cannot be restored at all, which means agencies in healthcare have no undo button whatsoever. If you run HIPAA sub-accounts, an external copy is not a nice-to-have.

Is there a way to restore just a conversation?

Not through the product. Contacts have a Restore tab. Opportunities and pipelines have a 60-day restore through Audit Logs. Workflows have restore and version history. Conversations have none of these, and standalone conversation restore sits on HighLevel’s public ideas board as an open request, which tells you where it currently ranks.

The practical effect is that the recovery paths available to you for message history are indirect. You restore the contact and hope the thread comes with it, inside 60 days, in a non-HIPAA account. That is a narrow set of conditions for something as load-bearing as your sales and support record.

Here is how the options compare:

Native optionWhat it coversWindowWhat it misses
Conversations tabReading and searching threadsLive onlyNo export of any kind
Messaging AnalyticsDelivery counts and message statusFilterable by dateNo export, no message content
LC billing exportCharge log, message by messageBilling periodMessage bodies, attachments, context
Contact restoreDeleted contact and (per the newer docs) its conversations60 days, none in HIPAA accountsAnything deleted separately, anything past 60 days
SnapshotAccount structure and automationsPoint in timeConversations entirely

Snapshots deserve their own line because agencies keep mistaking them for backups. They carry structure, not records, and they exclude contacts, conversations, and opportunities by design. A snapshot restores the machine that sends the messages. It has never contained a message.

Can you back up HighLevel conversations through the API?

Yes, and this is the genuinely useful thing to know from this post, because it is buried in developer documentation that agency owners have no reason to read.

The conversations API includes a dedicated export endpoint, GET /conversations/messages/export, built for exactly this. It returns messages for a location with cursor-based pagination, 10 to 1000 per page with a default of 100, and it accepts filters for channel, conversation ID, contact ID, and a start and end date. Each message comes back with its body, direction, status, timestamps, the from and to numbers, message type, and the source that produced it, so you can tell a workflow send apart from something a human typed. There are also endpoints to search conversations, pull messages for a single conversation, and fetch a call recording or its transcription by message ID.

The limitations are documented and you should design around them. Group Chat and SMS Review Request message types are not supported by the export. Email is opt-in rather than default: if you omit the channel parameter you get all non-email message types, and you have to explicitly request channel=Email to pull email. Each pagination cursor is valid for only two minutes from the last request, so a job that stalls partway through a large location loses its place and starts over. And everything runs inside the standard API limits of 100 requests per 10 seconds and 200,000 per day per app per location, which for an agency with high message volume across dozens of sub-accounts is a real constraint, not a theoretical one.

There is one more trap in the response shape. Attachments come back as URLs, not as files. So a JSON archive of your message history contains links to images, documents, and recordings that are still hosted by the platform you are trying to protect yourself against. If the sub-account goes away, so do the things those links point at. A backup that stores the URL and not the file is a backup of a filename.

None of this makes a DIY pipeline unreasonable. It makes it a project. Someone has to build the job, handle the cursor expiry, walk every location, fetch attachments separately, store the output somewhere durable, monitor it, and keep it alive when HighLevel changes an endpoint. Then someone has to answer the harder question, which is what restore means. Pulling messages out is straightforward. Putting them back is not: the API can add inbound and outbound messages to a conversation, so a rebuild is technically possible, but you are recreating a thread from records rather than restoring it, with new IDs and new timestamps on the write. For most agencies the realistic goal is a readable, searchable archive that satisfies a client dispute or a compliance request, not a byte-perfect reinstatement.

What about call recordings and voicemail?

Same story with an extra dependency. Recordings and their transcriptions are retrievable per message through the API, and Conversation AI can generate a summary and full transcript of an interaction that you can push into a workflow for recordkeeping. Both are useful. Both are pulls you have to build and schedule yourself, and both point at media hosted inside the account.

The audio is usually the highest-value thing in the whole record and the least likely to be backed up, because it is the largest and the most annoying to move. If your agency handles anything where what was said on a call could be disputed later, that is the file you want sitting in your own storage.

How should an agency actually back up conversations?

The honest manual answer is that there is no good one. There is no button to press weekly, which is why so many agencies have a folder of contact CSVs and zero messages. What you can do without writing code is narrow the blast radius: restrict who can delete contacts to admins you trust, since contact deletion is the mechanism that destroys message history, and treat any bulk delete as a two-person job. Use the Bulk Actions page to watch what a delete actually did rather than assuming. And if you are about to offboard a client or clean up a list, understand that the 90-day-ish window after cancellation is the outer limit on the whole sub-account, not just its contacts.

The automated answer is why we built GHLArmor, and since it is our product, weigh that accordingly. GHLArmor is the first backup approved by the HighLevel Marketplace, and it captures conversations and message history continuously alongside contacts, opportunities, workflows, funnels, and custom fields, storing the copies outside HighLevel entirely. The design goal is the thing this post keeps running into: a record of what was said that survives a deleted contact, a lapsed 60-day window, a HIPAA account with no restore, and a sub-account that no longer exists. If you would rather compare approaches first, including the DIY route and our competitors, we wrote up the backup tools available for HighLevel.

Whatever you choose, decide it before you need it. Conversations are the one object where HighLevel gives you no export button, no restore screen, and two help articles that disagree about what survives. That combination is not a reason to panic, but it is a reason to stop assuming somebody else is keeping the record.

Frequently asked questions

Can I export HighLevel conversations from the dashboard? No. There is no export button for conversations or message history anywhere in the sub-account UI. The Messaging Analytics screen in LC Phone is explicit about it: exporting is not available from that interface, and HighLevel’s own guidance there is to take screenshots or read the logs in the conversations tab. The contact CSV export carries contact fields only, not the messages attached to them.

What happens to conversations when a HighLevel contact is deleted? The conversation goes with the contact. HighLevel’s two help articles disagree on what comes back: the article on deleting contacts says associated data including conversations is permanently lost and will not return with a restore, while the restore article updated in October 2025 says restored contacts regain conversations, notes, tasks, appointments, and opportunities unless those were deleted separately. Either way the restore window is 60 days, and in HIPAA-compliant accounts deleted contacts cannot be restored at all.

Can I restore a deleted HighLevel conversation on its own? Not today. There is no Restore Conversations screen the way there is for contacts, opportunities, and workflows. Standalone conversation restore is an open request on HighLevel’s public ideas board, which is a reasonable signal that it does not exist yet. Recovery, where it happens at all, comes through restoring the contact.

Does the HighLevel API let me export messages? Yes. The conversations API includes a dedicated export endpoint, GET /conversations/messages/export, which returns messages for a location with cursor-based pagination, between 10 and 1000 per page, filterable by channel, conversation, contact, and date range. Group Chat and SMS Review Request message types are not supported, and each pagination cursor is only valid for two minutes.

Do HighLevel snapshots include conversations? No. Snapshots are a templating tool for account structure and they exclude contacts, conversations, and opportunities by design. Loading a snapshot into a fresh sub-account gives you the automations and settings with no message history behind them.