Workflow: Openai GoogleSheets Create

Workflow Details

Download Workflow
{
    "id": "8FLJK1NsduFL0Y5P",
    "meta": {
        "instanceId": "fb924c73af8f703905bc09c9ee8076f48c17b596ed05b18c0ff86915ef8a7c4a"
    },
    "name": "Qualify new leads in Google Sheets via OpenAI's GPT-4",
    "tags": [
        {
            "id": "y9tvM3hISJKT2jeo",
            "name": "Ted's Tech Talks",
            "createdAt": "2023-08-15T22:12:34.260Z",
            "updatedAt": "2023-08-15T22:12:34.260Z"
        }
    ],
    "nodes": [
        {
            "id": "1f179325-0bec-4e5c-8ebd-0a2bb3ebefaa",
            "name": "Merge",
            "type": "n8n-nodes-base.merge",
            "position": [
                1440,
                340
            ],
            "parameters": {
                "mode": "combine",
                "options": [],
                "combinationMode": "mergeByPosition"
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "7b548661-2b32-451f-ba52-91ca86728f1e",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                358,
                136.364217252396201729425229132175445556640625
            ],
            "parameters": {
                "width": 442,
                "height": 360.635782747603798270574770867824554443359375,
                "content": "### 1. Create a Google Sheet document\n* This template uses Google Sheet document connected to Google Forms, but a standalone Sheet document will work too\n* Adapt initial trigger to your needs: check for new entries periodically or add a manual trigger\n\n[Link to the Google Sheet template](https:\/\/docs.google.com\/spreadsheets\/d\/1jk8ZbfOMObvHGGImc0sBJTZB_hracO4jRqfbryMgzEs)"
            },
            "typeVersion": 1
        },
        {
            "id": "308b4dce-4656-47bd-b217-69565b1c34f6",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                820,
                420
            ],
            "parameters": {
                "width": 471,
                "height": 322,
                "content": "### 2. Provide lead qualification instructions\n* Create a __system message__ with overall instructions\n* Add a __user message__ with the JSON variables\n* Set node parses the resulting JSON object, but you can also request a plain string response in the system message"
            },
            "typeVersion": 1
        },
        {
            "id": "c00442ca-98cf-4296-b084-f0881ce4fd39",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1320,
                222.1878594249201341881416738033294677734375
            ],
            "parameters": {
                "width": 355,
                "height": 269.8121405750798658118583261966705322265625,
                "content": "### 3. Combine the initial data with GPT response\n* This Merge node puts together original records from the google sheet and responses from the OpenAI"
            },
            "typeVersion": 1
        },
        {
            "id": "62643a4c-a69c-4351-9960-20413285ff33",
            "name": "Sticky Note3",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1700,
                220
            ],
            "parameters": {
                "width": 398,
                "height": 265,
                "content": "### 4. Update the Google Sheet document\n* Provide __Column to Match On__ (usually a timestamp in case of Google Forms)\n* Enter the result from GPT into a separate column"
            },
            "typeVersion": 1
        },
        {
            "id": "4cd58340-81c4-46c7-b346-25a9b6ef2910",
            "name": "Update lead status",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                1860,
                340
            ],
            "parameters": {
                "columns": {
                    "value": {
                        "Rating": "={{ $json.reply.rating }}",
                        "Timestamp": "={{ $json.Timestamp }}"
                    },
                    "schema": [
                        {
                            "id": "Timestamp",
                            "type": "string",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "Timestamp",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Email Address",
                            "type": "string",
                            "display": true,
                            "removed": true,
                            "required": false,
                            "displayName": "Email Address",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Your name",
                            "type": "string",
                            "display": true,
                            "removed": true,
                            "required": false,
                            "displayName": "Your name",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Your business area",
                            "type": "string",
                            "display": true,
                            "removed": true,
                            "required": false,
                            "displayName": "Your business area",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Your team size",
                            "type": "string",
                            "display": true,
                            "removed": true,
                            "required": false,
                            "displayName": "Your team size",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Rating",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "Rating",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "row_number",
                            "type": "string",
                            "display": true,
                            "removed": true,
                            "readOnly": true,
                            "required": false,
                            "displayName": "row_number",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "defineBelow",
                    "matchingColumns": [
                        "Timestamp"
                    ]
                },
                "options": [],
                "operation": "update",
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": 72739218,
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1jk8ZbfOMObvHGGImc0sBJTZB_hracO4jRqfbryMgzEs\/edit#gid=72739218",
                    "cachedResultName": "Form Responses 1"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "1jk8ZbfOMObvHGGImc0sBJTZB_hracO4jRqfbryMgzEs",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1jk8ZbfOMObvHGGImc0sBJTZB_hracO4jRqfbryMgzEs\/edit?usp=drivesdk",
                    "cachedResultName": "Join Community (Responses)"
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "RtRiRezoxiWkzZQt",
                    "name": "Ted's Tech Talks Google account"
                }
            },
            "typeVersion": 4.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "fea0acee-13b6-441a-8cf9-c8fedbc4617d",
            "name": "Extract JSON reply",
            "type": "n8n-nodes-base.set",
            "position": [
                1120,
                580
            ],
            "parameters": {
                "fields": {
                    "values": [
                        {
                            "name": "reply",
                            "type": "objectValue",
                            "objectValue": "={{ JSON.parse($json.message.content) }}"
                        }
                    ]
                },
                "include": "selected",
                "options": []
            },
            "typeVersion": 3.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "0a0608fe-894f-4eb5-b690-233c6dfc0428",
            "name": "Qualify leads with GPT",
            "type": "n8n-nodes-base.openAi",
            "position": [
                900,
                580
            ],
            "parameters": {
                "prompt": {
                    "messages": [
                        {
                            "role": "system",
                            "content": "Your task is to qualify incoming leads. Leads are form submissions to a closed community group. Use the following criteria for a quality lead:\n\n1. We are looking for decision makers who run companies or who have some teams. The bigger the team - the better. Basically, everyone with some level of responsibility should be accepted. This is the main criterion.\n2. Email from a non-standard domain. Ideally this should be a corporate domain, but this is a secondary criterion.\n\nPlease thing step by step whether a lead is quality or not?\n\nIf at least one of the criteria satisfy, reply with \"qualified\" in response. Otherwise reply \"not qualified\". Reply with a JSON of the following structure: {\"rating\":\"string\",\"explanation\":\"string\"}. Reply only with with the JSON and nothing more!"
                        },
                        {
                            "content": "=Here's a lead info:\nName: {{ $json['Your name'] }}\nEmail: {{ $json['Email Address'] }}\nBusiness area: {{ $json['Your business area'] }}\nSize of the team: {{ $json['Your team size'] }}"
                        }
                    ]
                },
                "options": {
                    "temperature": 0.299999999999999988897769753748434595763683319091796875
                },
                "resource": "chat",
                "chatModel": "gpt-4-turbo-preview"
            },
            "credentials": {
                "openAiApi": {
                    "id": "rveqdSfp7pCRON1T",
                    "name": "Ted's Tech Talks OpenAi"
                }
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "22fdec69-a4a9-430d-9950-79195799ae7a",
            "name": "Check for new entries",
            "type": "n8n-nodes-base.googleSheetsTrigger",
            "position": [
                520,
                340
            ],
            "parameters": {
                "event": "rowAdded",
                "options": [],
                "pollTimes": {
                    "item": [
                        {
                            "mode": "everyMinute"
                        }
                    ]
                },
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": 72739218,
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1jk8ZbfOMObvHGGImc0sBJTZB_hracO4jRqfbryMgzEs\/edit#gid=72739218",
                    "cachedResultName": "Form Responses 1"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "1jk8ZbfOMObvHGGImc0sBJTZB_hracO4jRqfbryMgzEs",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1jk8ZbfOMObvHGGImc0sBJTZB_hracO4jRqfbryMgzEs\/edit?usp=drivesdk",
                    "cachedResultName": "Join Community (Responses)"
                }
            },
            "credentials": {
                "googleSheetsTriggerOAuth2Api": {
                    "id": "m33qCYf9eEvSgo0x",
                    "name": "Ted's Tech Talks Google Sheets Trigger"
                }
            },
            "typeVersion": 1
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "callerPolicy": "workflowsFromSameOwner",
        "executionOrder": "v1",
        "saveManualExecutions": true,
        "saveExecutionProgress": true,
        "saveDataSuccessExecution": "all"
    },
    "versionId": "ffad0998-1a6b-469d-9297-6d7fd88387b9",
    "connections": {
        "Merge": {
            "main": [
                [
                    {
                        "node": "Update lead status",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Extract JSON reply": {
            "main": [
                [
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Check for new entries": {
            "main": [
                [
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Qualify leads with GPT",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Qualify leads with GPT": {
            "main": [
                [
                    {
                        "node": "Extract JSON reply",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

address validation
View
rss-telegram
View
RSS to Telegram
View
Manual Awss3 Automate Triggered
View
Manual Editimage Create Webhook
View
Create a customer and add them to a segment in Customer.io
View
Stopanderror Awss3 Automation Webhook
View
post to mattermost v2
View
Schedule Slack Automation Scheduled
View
New WooCommerce Customer to Mautic
View