AutomationFlowsAI & RAG › Zendesk Ticket Summarizer with Pinecone, Openai, and Slack

Zendesk Ticket Summarizer with Pinecone, Openai, and Slack

ByErtay Kaya @ertay on n8n.io

This workflow automates the process of summarizing recent Zendesk support tickets and sharing key insights in a Slack channel. It is ideal for support teams who want daily, AI-generated overviews of customer issues without manually reviewing each ticket.

Cron / scheduled trigger★★★★☆ complexityAI-powered18 nodesOpenAI ChatPinecone Vector StoreOpenAI EmbeddingsSlackDocument Default Data LoaderZendeskAgent
AI & RAG Trigger: Cron / scheduled Nodes: 18 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #10484 — we link there as the canonical source.

This workflow follows the Agent → Documentdefaultdataloader recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "xoCD0HfXQ6cHOBOT",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Zendesk -> Pinecone -> AI agent -> Slack",
  "tags": [],
  "nodes": [
    {
      "id": "fc6bd8eb-249e-42c4-9114-c79041cb55d9",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -16,
        -1712
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0e334499-89f1-4a35-857b-6927d41b02f0",
      "name": "Pinecone Vector Store2",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        144,
        -1616
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "topK": 200,
        "options": {
          "pineconeNamespace": "=<namespace_name_here>"
        },
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "n8n-zendesk-YOUR_BRAND_NAME_HERE",
          "cachedResultName": "n8n-zendesk-YOUR_BRAND_NAME_HERE"
        },
        "toolDescription": "This is the vector store for the ticket data you need to answer queries."
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "db1cecb2-d8a8-459d-b4e2-3a7fdd8a22e5",
      "name": "Embeddings OpenAI2",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        144,
        -1472
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a0d15954-bc55-4218-9c7b-b4c4f01bdbf1",
      "name": "Send to Slack channel",
      "type": "n8n-nodes-base.slack",
      "notes": "Send summary to the Slack channel",
      "position": [
        464,
        -1920
      ],
      "parameters": {
        "text": "={{ $('AI Agent - Summary generator').item.json.output }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "C1111111"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 2.3
    },
    {
      "id": "25d2b22a-3586-477a-a6f9-70030c60a258",
      "name": "Default Data Loader1",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "notes": "Load tickets",
      "position": [
        -384,
        -1584
      ],
      "parameters": {
        "options": {
          "metadata": {
            "metadataValues": [
              {
                "name": "=url",
                "value": "={{ $json.url }}"
              },
              {
                "name": "created_at",
                "value": "={{ $json.created_at }}"
              }
            ]
          }
        },
        "jsonData": "=subject: {{ $json.raw_subject }} | description: {{ $json.description }} | device: {{ $json.fields[3].value }} | OS: {{ $json.fields[5].value }}",
        "jsonMode": "expressionData"
      },
      "notesInFlow": true,
      "typeVersion": 1.1
    },
    {
      "id": "ea89f205-9399-48dd-a59b-106aabdc6725",
      "name": "Wait1",
      "type": "n8n-nodes-base.wait",
      "notes": "15 seconds wait",
      "position": [
        -208,
        -1904
      ],
      "parameters": {
        "amount": 15
      },
      "notesInFlow": true,
      "typeVersion": 1.1
    },
    {
      "id": "ed674d9d-0432-4e58-9c7c-65e7d93a5b32",
      "name": "Daily trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "notes": "Trigger omce a day at 10am",
      "position": [
        -1040,
        -1904
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 10
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 1.2,
      "alwaysOutputData": true
    },
    {
      "id": "aeefa7d5-c15b-4728-8f07-ef4c2a06db25",
      "name": "Get tickets",
      "type": "n8n-nodes-base.zendesk",
      "notes": "Fetch tickets created in the last 24 hours",
      "position": [
        -784,
        -1904
      ],
      "parameters": {
        "options": {
          "query": "=created>{{$now.minus({hours: 24})}} brand:<brand_id_here>",
          "sortBy": "created_at",
          "sortOrder": "desc"
        },
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "zendeskApi": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "e0ca2b57-f1e3-401a-8341-8205502ef315",
      "name": "Pinecone Vector Store - Tickets",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        -544,
        -1904
      ],
      "parameters": {
        "mode": "insert",
        "options": {
          "clearNamespace": true,
          "pineconeNamespace": "<namespace_name_here>"
        },
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "n8n-zendesk-YOUR_BRAND_NAME_HERE",
          "cachedResultName": "n8n-zendesk-YOUR_BRAND_NAME_HERE"
        }
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "0d1b212f-c907-48a7-9602-836a375c4285",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        -576,
        -1680
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "dd0b1804-0b5c-4ffd-9ce1-3f25c4d61238",
      "name": "AI Agent - Summary generator",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "onError": "continueErrorOutput",
      "position": [
        32,
        -1904
      ],
      "parameters": {
        "text": "=Create a summary of tickets available in the vector store. Highlight main complaints that are mentioned in multiple tickets. For each complaint, mention the number of different tickets that the complaint was raised in.",
        "options": {
          "systemMessage": "=Your job is to respond to prompts using the information you gather from the customer support tickets. Your main role is to help your users to gain insights from tickets without having to read tickets one by one. "
        },
        "promptType": "define"
      },
      "typeVersion": 2,
      "alwaysOutputData": false
    },
    {
      "id": "4d6a7e9c-ce40-45f8-9857-0b924782892f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        -2048
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 304,
        "content": "Fetch tickets created in the last 24 hours from Zendesk. Make sure the query string contains the id of the brand if querying tickets for a specific brand."
      },
      "typeVersion": 1
    },
    {
      "id": "e9a14c2c-7b73-4687-b7b5-057af80ce64c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -576,
        -2048
      ],
      "parameters": {
        "color": 7,
        "width": 288,
        "height": 304,
        "content": "Store tickets in a Pinecone index and namespace. Select the index and define a namespace in the node. Namespace gets created automatically. Clear namespace before storing the new tickets."
      },
      "typeVersion": 1
    },
    {
      "id": "15021f15-a1ff-45fb-b10d-7ea06ecb4bf3",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -432,
        -1696
      ],
      "parameters": {
        "color": 7,
        "width": 176,
        "height": 256,
        "content": "Match Zendesk ticket fields to data and metadata in Pinecone"
      },
      "typeVersion": 1
    },
    {
      "id": "28cd0979-3fe6-4721-817d-e01b7389b6ba",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        -2048
      ],
      "parameters": {
        "color": 7,
        "width": 176,
        "height": 304,
        "content": "A short wait is needed before AI agent starts summarising the tickets stored in Pinecone."
      },
      "typeVersion": 1
    },
    {
      "id": "3d31efa1-5a49-4fa0-9d9f-f79c72fc9309",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        -1712
      ],
      "parameters": {
        "color": 7,
        "width": 288,
        "height": 208,
        "content": "Select the same index and namespace used in \"Pinecone Vector Store - Tickets\" node"
      },
      "typeVersion": 1
    },
    {
      "id": "02c9850e-82f6-4a5e-a993-2d3ef0a85b7f",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        -2048
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 304,
        "content": "AI agent to summarise tickets."
      },
      "typeVersion": 1
    },
    {
      "id": "95f9a3cb-4658-4dd6-8b5d-85b5960a0073",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1664,
        -2144
      ],
      "parameters": {
        "width": 544,
        "height": 720,
        "content": "## Zendesk Ticket Summarizer with Pinecone, OpenAI, and Slack\n\nThis workflow automates the process of summarizing recent Zendesk support tickets and sharing key insights in a Slack channel. It is ideal for support teams who want daily, AI-generated overviews of customer issues without manually reviewing each ticket.\n\n*How it works*\n\n* Daily Trigger: The workflow runs every day at 10am.\n* Fetch Tickets: It retrieves all Zendesk tickets created in the last 24 hours (optionally filtered by brand).\n* Vector Storage: Tickets are stored in a Pinecone vector database, with relevant fields and metadata.\n* AI Summarization: An AI agent (using OpenAI) analyzes the tickets, identifies main complaints, and counts how many tickets mention each issue.\n* Slack Notification: The summary is posted to a specified Slack channel for your team to review.\n\n\n*Setup Instructions*\n\n1. Configure your Zendesk, Pinecone, OpenAI, and Slack credentials in the respective nodes.\n2. Set your Pinecone index and namespace in both Pinecone nodes.\n3. Adjust the Zendesk query if you want to filter by a specific brand.\n4. Set the Slack channel ID where you want to receive the summaries.\n\n\n*Use case*\nGet daily, actionable insights from your Zendesk tickets, helping your team quickly spot trends and recurring issues."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2823fade-39a2-43c7-8c1f-bb0626910012",
  "connections": {
    "Wait1": {
      "main": [
        [
          {
            "node": "AI Agent - Summary generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get tickets": {
      "main": [
        [
          {
            "node": "Pinecone Vector Store - Tickets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily trigger": {
      "main": [
        [
          {
            "node": "Get tickets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store - Tickets",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI2": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store2",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Summary generator",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader1": {
      "ai_document": [
        [
          {
            "node": "Pinecone Vector Store - Tickets",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store2": {
      "ai_tool": [
        [
          {
            "node": "AI Agent - Summary generator",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Summary generator": {
      "main": [
        [
          {
            "node": "Send to Slack channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store - Tickets": {
      "main": [
        [
          {
            "node": "Wait1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automates the process of summarizing recent Zendesk support tickets and sharing key insights in a Slack channel. It is ideal for support teams who want daily, AI-generated overviews of customer issues without manually reviewing each ticket.

Source: https://n8n.io/workflows/10484/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

WooriFisa 최종. Uses memoryMongoDbChat, agent, httpRequest, documentDefaultDataLoader. Scheduled trigger; 68 nodes.

Memory Mongo Db Chat, Agent, HTTP Request +14
AI & RAG

This n8n workflow automates the process of collecting, storing, and summarizing customer reviews from the Apple App Store for multiple apps. It fetches daily reviews, stores them in a Pinecone vector

Jwt, HTTP Request, Pinecone Vector Store +5
AI & RAG

This template gives your HR or operations team an AI-powered Slack bot that answers employee questions about internal policies — directly in DM, available to everyone in the workspace, with no per-use

Google Drive, Pinecone Vector Store, Document Default Data Loader +8
AI & RAG

This workflow automatically fetches reviews for one or more Google Play Store apps, summarizes the feedback using OpenAI, stores and manages review data with Pinecone, and posts the summary to a Slack

Agent, HTTP Request, Pinecone Vector Store +4
AI & RAG

WooriFisa. Uses agent, httpRequest, documentDefaultDataLoader, vectorStorePinecone. Scheduled trigger; 86 nodes.

Agent, HTTP Request, Document Default Data Loader +14