Log resolved Crisp conversations to a Google Sheet
Every time a Crisp conversation is marked resolved, we add a row to your Google Sheet, so you have a clean record of closed tickets for weekly reporting.
Run this as a Crisp webhook workflow that fires whenever a conversation's status changes. Crisp sends this webhook for every status change, so the first thing to do is check the new status and only continue when it is "resolved". If the conversation moved to any other state (such as pending or unresolved), stop and do nothing, so the log only ever records closed tickets.
When a conversation is resolved, gather the details to log:
Call Crisp's Get People Profile for the conversation's contact to read the contact's full name, email address, and the segments or tags on that contact.
Call Crisp's Get Messages In Conversation and count the returned messages to get the total message count for the ticket.
Take the assigned operator, the conversation (session) id, and the website id from the webhook payload.
Then append a single row to a Google Sheet with Append Values, one row per resolved conversation, using these columns in order:
Resolved timestamp: Crisp timestamps are Unix epoch milliseconds, so convert the status-change time to a human-readable date and time before writing it.
Contact name.
Contact email.
Assigned operator.
Conversation segments or tags, comma-separated when there are several.
Message count.
Link back to the conversation, built from the website id and session id, for example https://app.crisp.chat/website/{website_id}/inbox/{session_id}/.
Append to a fixed spreadsheet and tab that I configure (for example a "Resolved Tickets" tab). This is a plain, deterministic record for weekly reporting, so do not summarize, score, or add any commentary. If a field is missing, such as a contact with no email, write an empty cell rather than skipping the row.
Additional information
What does this prompt do?
- Watches your Crisp inbox and springs into action the moment a conversation is marked resolved.
- Adds one tidy row to your Google Sheet with the contact's name and email, the operator who handled it, the tags on the contact, the message count, the resolved time, and a link back to the chat.
- Skips any conversation that moves to a different status, so your sheet only ever holds closed tickets.
- Runs automatically in the background with no copy-pasting or manual logging.
What do I need to use this?
- A Crisp account with access to the inbox you want to track.
- A Google account and a Google Sheet to log resolved conversations into.
- Optional: a dedicated tab (such as 'Resolved Tickets') with the column headers set up the way you want.
How can I customize it?
- Choose which Google Sheet and tab the resolved tickets get logged to.
- Pick which details to capture in each row, such as tags, operator, or message count.
- Adjust how the resolved date and time are formatted for your reports.
Frequently asked questions
Will conversations that aren't resolved show up in my sheet?
Does this happen automatically?
What information gets saved for each conversation?
Can I use this for weekly reporting?
Will it change or overwrite my existing sheet data?
Related templates
Turn every resolved Crisp chat into a clean spreadsheet log.
Set up automatic ticket logging once and get a reliable record of closed conversations for every weekly report.