Handleiding & instellingen

Terug naar formulier

1. Callback-endpoint voor n8n

Laat n8n aan het einde van de workflow een POST sturen naar:

https://<jouw-app-url>/api/public/n8n-callback

Verwachte JSON-body:

{
  "email": "ontvanger@bedrijf.nl",
  "subject": "Planning-analyse project X",
  "message": "Optionele begeleidende tekst",
  "klant": "Klantnaam",
  "project": "Projectnaam/nummer",
  "submissionId": "id uit de inkomende webhook",
  "attachments": [
    { "filename": "analyse.pdf", "content": "<base64>" },
    { "filename": "planning.xlsx", "path": "https://download-url" }
  ]
}

Het endpoint verstuurt de mail naar het opgegeven adres met CC naar alblasinspection@gmail.com. Bijlagen mogen base64 (content) of een download-URL (path) zijn.

Optionele beveiliging: zet in Project Settings → Secrets het secret N8N_CALLBACK_SECRET en stuur dezelfde waarde mee als header x-callback-secret. Zonder dat secret is het endpoint open.

2. n8n-webhook (uitgaand)

De URL van je n8n-webhook staat niet in de code, maar in het secret N8N_WEBHOOK_URL (Project Settings → Secrets). Het formulier stuurt de gegevens vanaf de server, dus de URL is nooit zichtbaar in de browser.

Payload die n8n ontvangt:

{
  "submissionId": "uuid",
  "submittedAt": "ISO-datum",
  "klant": "...", "project": "...",
  "aantalSets": 53, "varianten": "...", "beschrijving": "...",
  "indiener": "...", "email": "...",
  "brondataType": "file" | "text",
  "planningText": "..." | null,
  "file": { "fileName": "...", "mimeType": "...", "base64": "..." } | null
}

Code-locatie: src/lib/planning.functions.ts

3. Verzendadres van de e-mail

Standaard IQC Systems Planning <planning@iqc-systems.com>. Aan te passen zonder code via het secret MAIL_FROM, of in src/routes/api/public/n8n-callback.ts (constante DEFAULT_FROM). Het domein iqc-systems.com moet in Resend geverifieerd zijn, anders weigert Resend de verzending.

4. Geschiedenis van aanvragen

Voor een overzichtstabel met alle ingediende aanvragen (klant, project, indiener, e-mail, tijdstip, status) is de ingebouwde database nodig. Die kan alleen jij aanzetten via Cloud in de zijbalk; laat het weten zodra dat gedaan is, dan bouw ik de opslag en het overzicht erbij.