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.

Deterministic Code
CrispGoogle SheetsCustomer SupportOperationsData Sync
PromptCreate

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.

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.

FAQs

Will conversations that aren't resolved show up in my sheet?
No. The automation only logs a conversation once its status changes to resolved, so your sheet stays a clean record of closed tickets.
Does this happen automatically?
Yes. As soon as a Crisp conversation is marked resolved, a new row is added to your Google Sheet without any manual work.
What information gets saved for each conversation?
The resolved date and time, the contact's name and email, the operator who handled it, the conversation's tags or segments, how many messages were exchanged, and a link back to the chat in Crisp.
Can I use this for weekly reporting?
Yes. Because every closed ticket lands in one spreadsheet, you can filter or chart the data however you like for weekly or monthly reviews.
Will it change or overwrite my existing sheet data?
No. Each resolved conversation is simply added as a new row at the bottom, so nothing already in your sheet is touched.

Related templates

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Local listing health board for every location you manage

See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.

Local Business Data
Google Sheets
App
Let support send one-off Loops emails without an engineer

Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.

Loops.so
Stripe
Google Sheets
App
Stop cold emails to anyone with a live deal in Pipedrive

Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.

Mailshake
Pipedrive
Google Sheets
Deterministic Code
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App
LinkedIn Ads budget pacing dashboard for every client account

See every LinkedIn ad account's spend against the budget you committed to, catch overspend early, and rebalance without rebuilding a spreadsheet.

LinkedIn Ads
Google Sheets
Slack Bot
App

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.