This workflow follows the Google Sheets → 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 →
{
"name": "AI Q&A Bot (Webhook \u2192 Anthropic Claude \u2192 Slack + Google Sheets)",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "ai-qa-bot",
"responseMode": "responseNode",
"options": {}
},
"id": "node-webhook",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
240,
300
]
},
{
"parameters": {
"method": "POST",
"url": "https://api.anthropic.com/v1/messages",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "x-api-key",
"value": "={{ $credentials.value }}"
},
{
"name": "anthropic-version",
"value": "2023-06-01"
},
{
"name": "content-type",
"value": "application/json"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": []
},
"specifyBody": "json",
"jsonBody": "={\n \"model\": \"claude-haiku-4-5-20251001\",\n \"max_tokens\": 512,\n \"system\": \"You are a helpful assistant. Answer clearly and concisely.\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"{{ $json.body.question }}\"\n }\n ]\n}",
"options": {}
},
"id": "node-anthropic",
"name": "Anthropic Claude",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
480,
300
],
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "YOUR_GOOGLE_SHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "Sheet1",
"mode": "name"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Question": "={{ $('Webhook').item.json.body.question }}",
"Answer": "={{ $json.content[0].text }}",
"Model": "={{ $json.model }}",
"Timestamp": "={{ $now.toISO() }}"
}
}
},
"id": "node-gsheets",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4,
"position": [
720,
200
],
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"select": "channel",
"channelId": {
"__rl": true,
"value": "#automation-log",
"mode": "name"
},
"messageType": "text",
"text": "={{ 'New Claude Query\\n\\nQuestion: ' + $('Webhook').first().json.body.question + '\\nAnswer: ' + $('Anthropic Claude').first().json.content[0].text + '\\nModel: ' + $('Anthropic Claude').first().json.model + '\\nTime: ' + $now.toISO() }}",
"otherOptions": {}
},
"id": "node-slack",
"name": "Slack",
"type": "n8n-nodes-base.slack",
"typeVersion": 2,
"position": [
720,
400
],
"credentials": {
"slackApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={\n \"question\": \"{{ $('Webhook').item.json.body.question }}\",\n \"answer\": \"{{ $('Anthropic Claude').item.json.content[0].text }}\",\n \"model\": \"{{ $('Anthropic Claude').item.json.model }}\",\n \"timestamp\": \"{{ $now.toISO() }}\"\n}",
"options": {}
},
"id": "node-respond",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
960,
300
]
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Anthropic Claude",
"type": "main",
"index": 0
}
]
]
},
"Anthropic Claude": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
},
{
"node": "Slack",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Slack": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"tags": [
"ai",
"webhook",
"anthropic",
"claude",
"tutorial"
]
}
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.
googleSheetsOAuth2ApihttpHeaderAuthslackApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
AI Q&A Bot (Webhook → Anthropic Claude → Slack + Google Sheets). Uses httpRequest, googleSheets, slack. Webhook trigger; 5 nodes.
Source: https://github.com/shazforiot/n8n-ai-automation-tutorial/blob/main/workflow-ai-qabot.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow receives new Calendly meeting bookings, checks Google Sheets to prevent duplicate briefings, pulls contact and deal context from HubSpot, enriches company data with Clearbit, generates t
This workflow receives a webhook trigger, reads exception records from Google Sheets, uses Google Gemini (Generative Language API) to rank and summarize them, posts a prioritized report to Slack, writ
Development teams and project maintainers who receive high volumes of GitHub issues and want to automate classification and team notifications. Perfect for open source projects, product teams, and Dev
This workflow captures new leads via webhook, enriches and scores them with Apollo and Google Gemini, logs everything in Google Sheets, and automates outreach, reply handling, follow-ups, meeting prep
This workflow automates the initial screening process for new job applications, freeing up your recruitment team to focus on qualified candidates. It receives applications from a webhook, uses OpenAI