Skip to main content

Automate internal complaint resolution with Jotform, Gemini AI & Google Sheets

Workflow preview

Workflow preview
100%
Automate internal complaint resolution with Jotform, Gemini AI & Google Sheets preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Workflow explaination video: https://youtu.be/z1grVuNOXMk Prerequisites Before running this workflow, you need to have the following set up: 1. JotForm: A form with ...

Best for

  • Ticket Management automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.jotformtrigger, @n8n/n8n-nodes-langchain.agent, @n8n/n8n-nodes-langchain.lmchatgooglegemini, @n8n/n8n-nodes-langchain.outputparserstructured, n8n-nodes-base.gmail, n8n-nodes-base.stickynote, n8n-nodes-base.googlesheetstool, n8n-nodes-base.scheduletrigger

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by iamvaar.

Original n8n.io source

1.1 Workflow description

Title
Automate internal complaint resolution with Jotform, Gemini AI & Google Sheets
Workflow name
Automate internal complaint resolution with Jotform, Gemini AI & Google Sheets

Workflow explaination video: https://youtu.be/z1grVuNOXMk

Prerequisites

Before running this workflow, you need to have the following set up:

  1. JotForm: A form with fields for describing the issue and optionally naming the team member involved.
  2. Google Sheet 1 (Issue Resolver Logic): A sheet with three columns: Issue Category, Normal Resolver, and Alternate Resolver. This sheet defines who handles which type of complaint.
  3. Google Sheet 2 (Issue Logs): A sheet to store all submitted complaints. It needs columns like: Issue, The person Caused by, case_awarded_to, resolver_email, email_subject, email_body_html, submitted_time, and status.
  4. Google Sheet 3 (Resolver Details): A simple sheet with two columns: resolver (e.g., "HR Team") and email (e.g., "[email protected]").
  5. Credentials: You need to have connected accounts (credentials) in n8n for JotForm, Google (a Service Account for Sheets and OAuth for Gmail), and a Gemini API Key.

Part 1: Initial Complaint Processing

This part of the workflow triggers when a new complaint is submitted, uses AI to process it, logs it, and sends an initial notification.

1. JotForm Trigger
  • What it is: The starting point of the workflow.
  • How it works: It constantly listens for new submissions on your specified JotForm. When someone fills out and submits the form, this node activates and pulls in all the submitted data (like the issue description and the person involved).
2. AI Agent
  • What it is: The "brain" of the operation, which orchestrates several tools to make a decision.
  • How it works: This node receives the complaint details from the JotForm Trigger. It follows a detailed prompt that instructs it to perform a sequence of tasks:
    1. Classify: Analyze the complaint description to categorize it.
    2. Reason: Use its connected "tools" to figure out the correct resolver based on your business logic.
    3. Generate: Create a complete email notification and format the final output as a JSON object.
  • Connected Tools:
    • Google Gemini Chat Model: This is the actual language model that provides the intelligence. The AI Agent sends its prompt and the data to this model for processing.
    • Issue Resolver Allotment Logic Sheets tool: This allows the AI Agent to read your first Google Sheet. It can look up the issue category and find the designated "Normal Resolver" or "Alternate Resolver."
    • Resolver Details Sheets tool: This allows the AI Agent to read your third Google Sheet. Once it knows the name of the resolver (e.g., "HR Team"), it uses this tool to find their corresponding email address.
    • Structured Output Parser: This ensures that the AI's response is perfectly formatted into the required JSON structure (email, case_awarded_to, email_subject, etc.), making it reliable for the next steps.
3. Save Complaint (Google Sheets Node)
  • What it is: The record-keeping step.
  • How it works: This node takes the structured JSON output from the AI Agent and the original data from the JotForm Trigger. It then adds a new row to your second Google Sheet ("Issue Logs"), mapping each piece of data to its correct column (Issue, case_awarded_to, submitted_time, etc.).
4. Send a message (Gmail Node)
  • What it is: The initial notification step.
  • How it works: After the complaint is successfully logged, this node sends an email. It uses the resolver_email, email_subject, and email_body_html fields generated by the AI Agent to send a formal assignment email to the correct department or person.

Part 2: Daily Follow-Up

This second, independent part of the workflow runs every day to check for unresolved issues that are older than three days and sends a reminder.

1. Schedule Trigger
  • What it is: The starting point for the daily check-up.
  • How it works: Instead of waiting for a user action, this node activates automatically at a predefined time each day (e.g., 10:00 AM).
2. Get Complaint Logs (Google Sheets Node)
  • What it is: The data gathering step for the follow-up process.
  • How it works: When the schedule triggers, this node reads all the rows from your "Issue Logs" Google Sheet, bringing every recorded complaint into the workflow for evaluation.
3. If Node
  • What it is: The decision-making step.
  • How it works: This node examines each complaint passed to it from the previous step one by one. For each complaint, it performs a calculation: it finds the difference in days between the submitted_time and the current date. If that difference is greater than or equal to 3, the complaint is passed on to the next step. Otherwise, the workflow stops for that complaint.
4. Send a message1 (Gmail Node)
  • What it is: The reminder email step.
  • How it works: This node only receives complaints that met the "3 days or older" condition from the If node. For each of these old complaints, it sends a follow-up email to the resolver_email. The email body is dynamic, mentioning how many days have passed and including the original issue description to remind the resolver of the pending task.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - JotForm Trigger

Type / Role
n8n-nodes-base.jotFormTrigger - jotFormTrigger
Config choices
Version 1

Block 2 - AI Agent

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 2.2

Block 3 - Google Gemini Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatGoogleGemini - lmChatGoogleGemini
Config choices
Version 1

Block 4 - Structured Output Parser

Type / Role
@n8n/n8n-nodes-langchain.outputParserStructured - outputParserStructured
Config choices
Version 1.3

Block 5 - Send a message

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 6 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 7 - Resolver Details Sheets tool

Type / Role
n8n-nodes-base.googleSheetsTool - googleSheetsTool
Config choices
Version 4.7

Block 8 - Issue Resolver Allotment Logic Sheets tool

Type / Role
n8n-nodes-base.googleSheetsTool - googleSheetsTool
Config choices
Version 4.7

Block 9 - Schedule Trigger

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.2

Block 10 - If

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 11 - Send a message1

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 12 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 13 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 14 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 15 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 16 - Sticky Note5

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 17 - Save Complaint

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 18 - Get Complaint Logs

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 19 - Sticky Note6

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 20 - Sticky Note7

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 21 - Sticky Note8

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 22 - Sticky Note9

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Automate internal complaint resolution with Jotform, Gemini AI & Google Sheets
Complexity advanced
Nodes 22
Categories Ticket Management, AI Summarization
Author iamvaar
Published 13 Oct 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/9592/9592.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Automate internal complaint resolution with Jotform, Gemini AI & Google Sheets do?

Workflow explaination video: https://youtu.be/z1grVuNOXMk Prerequisites Before running this workflow, you need to have the following set up: 1. JotForm: A form with ...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Ticket Management, AI Summarization use case.