AutomationFlowsAI & RAG › Transcribe and Summarize Twilio Calls with Smallest.ai, Gemini, Slack, and…

Transcribe and Summarize Twilio Calls with Smallest.ai, Gemini, Slack, and…

Original n8n title: Transcribe and Summarize Twilio Calls with Smallest.ai, Gemini, Slack, and Gohighlevel

ByZain Khan @zain on n8n.io

This workflow listens for completed Twilio call recordings, downloads and transcribes the audio with Smallest.ai, summarizes the transcript with Google Gemini, then notifies a Slack user and creates a new opportunity in GoHighLevel. Triggers when Twilio Voice Insights reports a…

Event trigger★★★★☆ complexityAI-powered11 nodesTwilio TriggerGoogle Gemini ChatSlackHigh LevelHTTP RequestN8N Nodes SmallestaiAgent
AI & RAG Trigger: Event Nodes: 11 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → HTTP Request 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": "b5pgfYnFyn0bY6iI",
  "name": "Automatic Call & Voicemail Transcription",
  "tags": [],
  "nodes": [
    {
      "id": "50c1e725-7eac-4bf5-9b0a-766d60e5b272",
      "name": "Twilio Trigger",
      "type": "n8n-nodes-base.twilioTrigger",
      "position": [
        128,
        -112
      ],
      "parameters": {
        "updates": [
          "com.twilio.voice.insights.call-summary.complete"
        ]
      },
      "typeVersion": 1
    },
    {
      "id": "79b82a00-302e-436b-b815-fd21265a64e7",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        752,
        128
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "46270483-b4e2-45ce-b34e-07bd5196ddb9",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1104,
        -112
      ],
      "parameters": {
        "text": "=A new call from {{ $('Twilio Trigger').item.json.From }}\n\\n \\n\nSummary: {{ $json.output }}",
        "user": {
          "__rl": true,
          "mode": "list",
          "value": "U02CS8VM15J",
          "cachedResultName": "zainkhan"
        },
        "select": "user",
        "otherOptions": {}
      },
      "typeVersion": 2.3
    },
    {
      "id": "84c1af60-a1b6-405d-92ee-27a95205554d",
      "name": "Create an opportunity",
      "type": "n8n-nodes-base.highLevel",
      "position": [
        1312,
        -112
      ],
      "parameters": {
        "name": "=A new call from:  {{ $('Twilio Trigger').item.json.From }}, summary: {{ $('Call Summary AI Agent').item.json.output }}",
        "resource": "opportunity",
        "requestOptions": {},
        "additionalFields": {}
      },
      "typeVersion": 2
    },
    {
      "id": "c7ec8f81-01ae-4583-9aa0-5a0de235e01a",
      "name": "Download recording",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        336,
        -112
      ],
      "parameters": {
        "url": "={{ $json.RecordingUrl }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        },
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "twilioApi"
      },
      "typeVersion": 4.2
    },
    {
      "id": "4a658a4e-6ba5-41a0-80cc-f273caf3861f",
      "name": "Transcribe recording",
      "type": "n8n-nodes-smallestai.smallestai",
      "position": [
        544,
        -112
      ],
      "parameters": {
        "resource": "stt",
        "additionalOptions": {}
      },
      "credentials": {},
      "typeVersion": 1
    },
    {
      "id": "d17394fd-3d53-4a52-b066-c597ed8f5500",
      "name": "Call Summary AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        752,
        -112
      ],
      "parameters": {
        "text": "=Caller: {{ $('Twilio Trigger').item.json.From }}\nDuration: {{ $('Twilio Trigger').item.json.RecordingDuration }}\n\nTranscript:\n{{ $json.transcription ?? '' }}",
        "options": {
          "systemMessage": "You are a sales/support call assistant. From the transcript, return: (1) a 2-3 sentence summary, (2) overall caller sentiment (positive / neutral / negative), and (3) the single best suggested next step. Keep it short and skimmable."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "3d3bdaa4-d90e-48ac-b9bc-e1d5186eb9d8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        -176
      ],
      "parameters": {
        "color": 7,
        "width": 336,
        "height": 480,
        "content": "## AI Intelligence Layer\n"
      },
      "typeVersion": 1
    },
    {
      "id": "530f8ae6-9be1-4b1a-b8be-a1e23a9754f8",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        48,
        -176
      ],
      "parameters": {
        "color": 7,
        "width": 640,
        "height": 272,
        "content": "## Fetch & Transcribe Media\n"
      },
      "typeVersion": 1
    },
    {
      "id": "15c5db6d-fd30-4175-b69b-6097e7d5a9e6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -512,
        -288
      ],
      "parameters": {
        "width": 528,
        "height": 656,
        "content": "## Automatic Call & Voicemail Transcription\n\n### How it works\nThis workflow automatically streamlines inbound call management by tracking finished call recordings from Twilio. It downloads the raw audio binary file, routes it through Smallest.ai to generate high-accuracy transcripts, and passes the text to an AI Agent powered by Google Gemini.\n\n### Setup steps\n* Connect your **Twilio** account credentials in the Trigger and HTTP Request download nodes.\n* Connect your **Smallest.ai** API credentials inside the transcription node.\n* Authenticate your **Google Gemini** configuration within the LangChain Chat Model node.\n* Link your target **Slack** and **GoHighLevel** credentials to ensure delivery of notifications and pipeline entry creations.\n\n### Customization\nModify the system prompt inside the **Call Summary AI Agent** if you want to alter the strict data extraction format or require different structured data properties (like extracting pricing quotes, feature requests, or routing urgency tags)."
      },
      "typeVersion": 1
    },
    {
      "id": "fbb56b0d-235e-4592-9fe0-fce95a504651",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        -176
      ],
      "parameters": {
        "color": 7,
        "width": 416,
        "height": 256,
        "content": "## CRM & Team Alerting\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "d10a83e3-cbbb-4442-8650-da0043f7bd42",
  "nodeGroups": [],
  "connections": {
    "Send a message": {
      "main": [
        [
          {
            "node": "Create an opportunity",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Twilio Trigger": {
      "main": [
        [
          {
            "node": "Download recording",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download recording": {
      "main": [
        [
          {
            "node": "Transcribe recording",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transcribe recording": {
      "main": [
        [
          {
            "node": "Call Summary AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call Summary AI Agent": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Call Summary AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

This workflow listens for completed Twilio call recordings, downloads and transcribes the audio with Smallest.ai, summarizes the transcript with Google Gemini, then notifies a Slack user and creates a new opportunity in GoHighLevel. Triggers when Twilio Voice Insights reports a…

Source: https://n8n.io/workflows/17095/ — 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

CV → Match → Screen → Decide, all automated

HTTP Request, Information Extractor, Google Sheets +7
AI & RAG

This workflow connects Slack with Google Workspace, Cal.com, OpenWeather, and Google Gemini to act as a Slack-based assistant for Gmail, Calendar, Docs, Sheets, Drive, and Contacts, and to post an aut

Slack Trigger, Agent, Google Gemini Chat +12
AI & RAG

This workflow receives a meeting voice recording via webhook, transcribes it with Deepgram, and uses Google Gemini to extract client details and next-step tasks. It then updates GoHighLevel, posts a t

High Level, Agent, Google Gemini Chat +5
AI & RAG

This workflow analyzes any npm package and delivers a data-driven recommendation using Firecrawl + APIs + AI reasoning.

Google Gemini Chat, @Mendable/N8N Nodes Firecrawl, OpenAI Chat +6
AI & RAG

This workflow provides a fully automated multi-chain crypto portfolio tracking system powered by AI.

N8N Nodes Quicknode, Google Gemini Chat, Output Parser Structured +3