Skip to content
FlowHubFluxonLab
C
General Automationfree

Track data deletion requests from Gmail with Jira, BigQuery, and Slack

by Dyogo Henrique de Oliveira Ortegaadapted from n8n official workflow galleryUpdated Aug 2026
RequiresCCodeHTTP RequestHTTP Request
Share Post Share
MaManual test triggerManual test tri…Watch privacy request inboxWatch privacy r…SeSet workflow variablesSet workflow va…CoNormalize and classify privacy requestNormalize and c…IfCheck if request is clear enoughCheck if reques…HRCreate Jira privacy taskCreate Jira pri…HRInsert audit row in BigQueryInsert audit ro…HRSend Slack privacy alertSend Slack priv…HRCreate Gmail confirmation draftCreate Gmail co…HRCreate manual review Jira taskCreate manual r…HRSend Slack manual review alertSend Slack manu…12345678910
1/5
STEPS · 10
Run manually by an operator

Quick Overview This workflow monitors a Gmail inbox for potential privacy/data deletion requests, classifies each email, creates the appropriate Jira issue, logs a minimal audit record to BigQuery, and alerts the team in Slack, with an optional Gmail confirmation draft for human review. How it works Triggers when a new email matching deletion-related keywords arrives in Gmail (or runs manually for testing). Loads shared configuration values like Jira project details, BigQuery destination, SLA window, Slack channel, and confidence threshold. Cleans the email text, extracts the requester address, classifies the request type (deletion/access/correction), and calculates an SLA due date with a confidence score. Creates a Jira task for the privacy team when the classification is confident, or creates a separate Jira task labeled for manual review when it is not. Inserts an audit row into Google BigQuery with metadata such as request type, confidence, received time, due date, and whether a Jira issue was created. Posts a Slack message to the configured channel about the routed request or the need for manual review.

Tags

n8nreference-only
Connects
CCodeWHTTP Request
CategoryGeneral Automation
Triggermanual
Complexitycomplex
Nodes11
AddedJul 13, 2026
CW
free

Poll and download received invoice PDFs with KSeF Gateway to disk storage

Quick overview This workflow runs every 20 minutes to poll a self-hosted KSeF Gateway for newly received KSeF invoices, maintains a cursor checkpoint in n8n static data, downloads each new invoice PDF via the gateway API, and saves the files to local disk. How it works Runs every 20 minutes on a schedule. Reads the last successful polling checkpoint from the workflow’s static data and calls the KSeF Gateway /ksef/invoices/received/new endpoint with the since cursor. If the gateway response is unsuccessful, records the error details for alerting and leaves the checkpoint unchanged so the next run retries the same window. If the response is successful, stores the returned nextSince value as the new checkpoint. If new invoices are returned, processes each invoice summary individually. Downloads each invoice PDF from the KSeF Gateway /ksef/invoice/{ksefNumber}/pdf endpoint and saves it to the configured local folder. Outputs invoice metadata (number, seller, amount, and saved file path) as a placeholder where you can plug in notifications (Slack, email, or Discord). Setup Deploy and configure a self-hosted KSeF Gateway (https://github.com/jurczykpawel/ksef-gateway) with a token or cert

by Pawel Jurczyk
CW
free

Create KSeF invoices from completed Sellf purchases via KSeF Gateway

Quick overview This workflow receives signed Sellf purchase webhooks, validates the HMAC signature, and when the buyer requests an invoice with a NIP it builds a KSeF-ready invoice and submits it to a self-hosted KSeF Gateway, capturing the returned KSeF number or an error. How it works Receives a POST webhook from Sellf with the raw request body and the X-Sellf-Signature header. Verifies the webhook signature using HMAC-SHA256 and rejects the request with a 401 response if the signature is invalid. Responds immediately with a JSON OK response and continues processing in the background. Filters the event to purchase.completed and extracts the customer, order, and invoice details from the webhook payload. Continues only if the customer requested an invoice and provided a non-empty NIP. Builds a KSeF invoice payload using your seller details and the purchase data, then posts it to your KSeF Gateway /ksef/invoice endpoint with an X-Api-Key header. Stores the KSeF submission result by extracting the ksefNumber and status on success, or capturing the returned error details on failure. Setup Set up Sellf webhooks to send purchase.completed events to this workflow’s production webhook URL

by Pawel Jurczyk
CW
free

Send signed WooCommerce orders to KSeF via a self-hosted KSeF Gateway

Quick overview This workflow receives WooCommerce order webhooks, verifies the WooCommerce signature, converts eligible orders into a KSeF invoice payload, and submits them to a self-hosted KSeF Gateway API, skipping consumer orders that do not include a buyer NIP. How it works Receives a WooCommerce order webhook request and keeps the raw request body for signature validation. Verifies the X-WC-Webhook-Signature HMAC against your shared webhook secret and rejects invalid requests with a 401 response. Extracts the buyer NIP from WooCommerce order meta data and maps the order (seller, buyer, line items, VAT rates, and payment details) into a KSeF invoice payload. Skips processing and responds to WooCommerce with a success message when the order has no buyer NIP (consumer purchase). Sends the invoice payload to your self-hosted KSeF Gateway endpoint over HTTP with an X-Api-Key header. Responds to WooCommerce with the resulting KSeF number (when available) or an error from the gateway. Setup Deploy a KSeF Gateway instance and note its base URL. Update the workflow configuration values for the gateway URL and API key, seller NIP/name/address, and the WooCommerce webhook secret. In WooC

by Pawel Jurczyk