Love @crisp_chat but wouldn't it be great if an AI would look at each customer session and make a Helpdoc from it? Then add to my Crisp knowledge base for future chats like it?
There are Crisp marketplace plugins that kind of do this but I'm not in the mood to pay more.
Crisp provide a helpful webhook for each event so most automation tools should be able to work with it.
Enter @n8n_io with a simple flow that stores each session & when the ticket is closed, makes a Helpdoc from it and stores in the new n8n Data table thing.
This repo packages the n8n workflow and a Docker setup so you can run it locally or in CI, track changes, and import/export safely.
- Webhook (Crisp) receives conversation events from Crisp.
- Data Table (sessions) saves each message keyed by
session_id. - When a conversation resolves, the flow formats Q&A pairs and asks an LLM to draft a help doc (with PII removed).
- The help doc is saved to a second Data Table (helpdocs) for review/publishing.
workflows/crisp.helpdocs.sanitized.json— The sanitized n8n workflow (IDs & credentials replaced).docker-compose.yml— Run n8n locally.scripts/import.sh— Import allworkflows/*.jsoninto the container..github/workflows/validate.yml— CI to validate workflow JSON.README.md,LICENSE
- Put your real table IDs in the workflow:
- Replace
YOUR_SESSIONS_TABLE_IDwith your sessions Data Table ID. - Replace
YOUR_HELPDOCS_TABLE_IDwith your helpdocs Data Table ID.
- Replace
- In n8n Credentials, add your OpenAI (or compatible) API key and select it on the Chat Model node.
- Set your Crisp webhook to POST to
https://<your-n8n-host>/webhook/YOUR_WEBHOOK_PATH. - Start n8n:
docker compose up -d
- Import the workflow:
./scripts/import.sh
- Credentials, Data Table IDs, webhook path, and internal instance IDs are redacted or set to placeholders.
- The LLM prompt enforces PII removal in generated docs.
- If you use Postgres for n8n, adapt
docker-compose.ymlenv vars accordingly. - Consider signing Crisp webhooks and verifying the signature in a Code node before inserting data.