New to Kestra?
Use blueprints to kickstart your first workflows.
Review Data Processing Agreements against GDPR Article 28 with a Kestra AI agent. Generate compliance scorecards and remediation guidance using a European AI model.
Automate the first-pass legal review of any Data Processing Agreement (DPA) with a GDPR-focused AI agent. This blueprint checks a pasted DPA clause by clause against the mandatory requirements of Article 28(3) GDPR, flags missing or vague provisions, assesses international transfer risk under Chapter V, and produces a structured compliance scorecard with specific remediation language. It uses Mistral Large, a European AI model from Mistral AI (Paris, France), so prompts that may reference processing activities and data subjects stay within EU jurisdiction. The review is exported to Google Sheets and posted to a privacy and legal Slack channel for sign-off.
dpa_text (the agreement to review) and controller_jurisdiction (a SELECT covering EU, EEA, UK, Switzerland, and international cases).dpa_review task (io.kestra.plugin.ai.agent.AIAgent) runs the analysis with a senior-privacy-lawyer systemMessage, temperature set to 0.1 for deterministic output, and maxToken of 6144. A io.kestra.plugin.ai.retriever.TavilyWebSearch content retriever pulls recent EDPB guidelines and Standard Contractual Clause references for grounding.format_review task (io.kestra.plugin.scripts.python.Script) parses the agent's Markdown into a section-by-section dpa_review.csv.create_sheet task (io.kestra.plugin.googleworkspace.sheets.CreateSpreadsheet) creates a titled spreadsheet, and load_review (io.kestra.plugin.googleworkspace.sheets.Load) loads the CSV into it.notify_slack task (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) posts the jurisdiction and a direct link to the scorecard.A standalone LLM call cannot manage the surrounding workflow. Kestra chains the AI review, CSV transformation, spreadsheet creation, and Slack notification as one declarative YAML flow with full execution lineage, so every reviewed DPA leaves an auditable trail. Add retries on the API tasks to ride out provider rate limits, swap the European Mistral provider for a local Ollama model (see the YAML comments) without touching the rest of the pipeline, and wire event triggers so reviews fire automatically when a new DPA lands in storage or a vendor record changes. Neither the AI provider nor Google Sheets ships a scheduler that can coordinate these steps, govern secrets, and replay a failed run.
A Kestra instance with the AI, Google Workspace, Slack, and Python script plugins available, plus a Mistral AI account and a Tavily account.
MISTRAL_API_KEY: API key from Mistral AI for the Mistral Large provider.TAVILY_API_KEY: API key from Tavily for the web search content retriever.GCP_SERVICE_ACCOUNT_JSON: Google Cloud service account JSON with Sheets API access.SLACK_WEBHOOK: Slack incoming webhook URL for the privacy and legal channel.company.legal namespace.dpa_text or pasting your own.controller_jurisdiction and execute.dpa_text input with an event trigger that reads new agreements from object storage or a contract management system.systemMessage for sector-specific rules (health, finance) or extend it to other frameworks such as the UK GDPR or CCPA.