Ready-made recipe · ai
Typeform → Google Gemini → Google Sheets
A Typeform answer is sorted into a category by Google Gemini, then logged as a Google Sheets row.
Steps
- When when a typeform is submitted — Typeform node only reads
- Then classify the answer with gemini — Google Gemini node can be undone
- Then add a row to google sheets — Google Sheets node can be undone
Fields to fill (5)
The file has every node wired up. These are the blanks only you can fill (your form, your sheet, your words).
| Node | What to do |
|---|---|
| Typeform | fill formId (Form which should trigger workflow on submission) |
| Google Gemini | fill modelId (Model) |
| Google Sheets | fill documentId (Document) |
| Google Sheets | fill sheetName (Sheet) |
| Google Sheets | fill columns (Columns) |
Accounts to connect (3)
In n8n, pick or add a credential on each node — one of the types below.
- Typeform:
typeformApiortypeformOAuth2Api - Google Gemini:
googlePalmApi - Google Sheets:
googleApiorgoogleSheetsOAuth2Api
- Run it on Apify — type your own sentence, get the workflow back in seconds. Open Bridgecore on Apify (pay per use, $0.02–$0.05; nothing charged on errors).
- Ask your AI — add the MCP server
https://mcp.usebridgecore.com/to Claude, Cursor or any MCP client, then just say what should happen. Tools:do,find_recipe,plan_automation,make_n8n_workflow. Free to plan. - Ask me first — add “and ask me first” to any step (“… and post it on X and ask me first”) and the workflow sends you an Approve / Decline message (Slack, Telegram or Gmail) before that step runs. Nothing is sent, posted, deleted or paid until you tap Approve; no answer in a day = declined.
Get the n8n file
Download typeform-classify-to-sheets.json
- Open a new, empty workflow in n8n.
- Open the workflow menu (⋯) and choose Import from File — or copy the JSON below and paste it onto the canvas (Ctrl/Cmd+V).
- Connect the accounts, fill the fields above, run one test, then turn the workflow on.
Or copy the JSON
{
"name": "A Typeform answer is sorted into a category by Google Gemini",
"nodes": [
{
"id": "n1",
"name": "Typeform Trigger",
"type": "n8n-nodes-base.typeformTrigger",
"typeVersion": 1.1,
"parameters": {
"formId": ""
},
"position": [
240,
300
],
"notes": "step: when a typeform is submitted · reversibility: read-only"
},
{
"id": "n2",
"name": "Google Gemini",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"typeVersion": 1.2,
"parameters": {
"resource": "text",
"operation": "message",
"messages": {
"values": [
{
"role": "user",
"content": "=Classify the answer:\n\n{{ JSON.stringify($json) }}"
}
]
},
"modelId": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"position": [
460,
300
],
"notes": "step: classify the answer with gemini · reversibility: reversible"
},
{
"id": "n3",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"parameters": {
"resource": "sheet",
"operation": "append",
"documentId": {
"__rl": true,
"mode": "list",
"value": ""
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": ""
},
"columns": {
"mappingMode": "autoMapInputData",
"value": {},
"matchingColumns": [],
"schema": []
}
},
"position": [
680,
300
],
"notes": "step: add a row to google sheets · reversibility: reversible"
}
],
"connections": {
"Typeform Trigger": {
"main": [
[
{
"node": "Google Gemini",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"active": false
}