n8n template · Compliance & Audit Pack
Follow up on incomplete files automatically with n8n
Follow-ups are the most profitable and most neglected part of collecting files. This workflow takes over: every weekday morning it reads incomplete files from Supabase, has AI write a personalized reminder, sends it, stamps the date, then posts a recap to Slack.
- Chaque matin à 9htriggerSchedule (cron)
- Dossiers incompletsSupabase
- BoucleLoop (batches)
- Rédiger la relanceLLM chain
- Envoyer l'email de relanceSend email
- Marquer comme relancéSupabase
- Résumé des relances sur SlackSlack
Attached AI sub-nodes
- Modèle OpenAIOpenAI model
$ n8n import:workflow --input=relances-automatiques-dossiers.json ✔ Import successful — 8 nodes, valid connections
The problem it solves
Between 30 and 50% of started files never finish without a reminder — and manual follow-up is precisely the task that gets dropped when the week fills up. Result: audits dragging on for months over three remaining questions.
Naive automation (the same generic email on a loop) irritates more than it converts. Here every message is written by the model from the file's context — name, age, previous reminders — with a courteous tone that ages well.
How the workflow works, node by node
Node names are in French, exactly as they appear in the imported workflow — the logic is language-agnostic.
- 01
Chaque matin à 9h
Schedule (cron)Cron 0 9 * * 1-5: weekdays only — a reminder received on Sunday works against you.
- 02
Dossiers incomplets
SupabaseSelects rows from the dossiers table with incomplete status: the exact scope of today's run.
- 03
Boucle
Loop (batches)Processes files one by one: each iteration writes, sends and logs one reminder, then loops until the list is exhausted.
- 04
Rédiger la relance
LLM chainComposes the email from the file (name, ID, last reminder date): courteous, brief, with a clear recap of what remains to be done.
- 05
Modèle OpenAI
OpenAI modelai_languageModel sub-node: mass personalization is exactly where the LLM beats the fill-in-the-blanks template.
- 06
Envoyer l'email de relance
Send emailSends through your SMTP, from your own domain — deliverability and a professional image.
- 07
Marquer comme relancé
SupabaseUpdates last_reminder_at on the file: full traceability and a guard against double reminders, before handing back to the loop.
- 08
Résumé des relances sur Slack
Slack'Done' branch: once all files are processed, one message recaps the run — supervision without opening n8n.
What you need to run it
- n8n ≥ 1.60 with the LangChain nodes
- A Supabase project with the dossiers table (SQL provided in the pack guide)
- An OpenAI API key
- A configured SMTP (SPF/DKIM recommended) and a Slack bot for the recap
Customization ideas
- Space reminders out by filtering on last_reminder_at (e.g. no reminder within 3 days of the previous one)
- Escalate the tone on the third reminder by passing the counter to the prompt
- Switch the channel to SMS or WhatsApp for audiences unresponsive to email
FAQ
Frequently asked questions
How do I import this template into n8n?
Import relances-automatiques-dossiers.json via 'Import from File', attach Supabase, OpenAI, SMTP and Slack, replace the audit@votre-domaine.fr sender address, then activate: the first run goes out the next weekday morning at 9 am.
How do I avoid reminding a completed file?
The workflow only targets files with incomplete status: as soon as your process (or the pack's bot) flips the status to complete, the file drops out of scope automatically.
Are the generated emails really different from one another?
Yes: each reminder is written from the specific file's data, not from a fill-in template. No two recipients ever receive the same text, while staying within the frame set by the prompt.