AutomationFlowsEmail & Gmail › Pipedrive Lead Qualification with OpenAI

Pipedrive Lead Qualification with OpenAI

Original n8n title: Code Pipedrive

Code Pipedrive. Uses pipedrive, openAi, gmailTrigger, stickyNote. Event-driven trigger; 11 nodes.

Event trigger★★★★☆ complexityAI-powered11 nodesPipedriveOpenAIGmail Trigger
Email & Gmail Trigger: Event Nodes: 11 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Gmail Trigger → OpenAI 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
{
  "nodes": [
    {
      "id": "97b36168-7fa8-4a97-a6cc-c42496918c4c",
      "name": "Search Person in CRM",
      "type": "n8n-nodes-base.pipedrive",
      "position": [
        -880,
        400
      ],
      "parameters": {
        "term": "={{ $json.from.value[0].address }}",
        "limit": 1,
        "resource": "person",
        "operation": "search",
        "additionalFields": {
          "includeFields": ""
        }
      },
      "credentials": {
        "pipedriveApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2a17582b-9375-4a01-87d9-a50f573b83db",
      "name": "In campaign?",
      "type": "n8n-nodes-base.if",
      "position": [
        -420,
        400
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.in_campaign }}",
              "value2": "True"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2a8d509f-8ac2-4f45-a905-f34552833381",
      "name": "Get person from CRM",
      "type": "n8n-nodes-base.pipedrive",
      "position": [
        -640,
        400
      ],
      "parameters": {
        "personId": "={{ $json.id }}",
        "resource": "person",
        "operation": "get",
        "resolveProperties": true
      },
      "credentials": {
        "pipedriveApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b9c6f3d3-1a6d-4144-8e77-3a3c6e5282d8",
      "name": "Is interested?",
      "type": "n8n-nodes-base.openAi",
      "position": [
        -180,
        380
      ],
      "parameters": {
        "model": "gpt-4",
        "prompt": {
          "messages": [
            {
              "content": "=You are the best sales development representative in the world. You send cold email messages daily to CEOs and founders of companies. You do this to persuade them to make contact. This could be a phone call or a video meeting. \n\nYour task is to assess whether someone is interested in meeting up or calling sometime. You do this by attentively evaluating their response.\n\nThis is the email:\n{{ $('Get email').item.json.text }}\n\nThe response format should be:\n{\"interested\": [yes/no],\n\"reason\": reason\n}\n\nJSON:"
            }
          ]
        },
        "options": {},
        "resource": "chat"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f1eb438d-f002-4082-8481-51565df13f5c",
      "name": "Get email",
      "type": "n8n-nodes-base.set",
      "position": [
        -1100,
        400
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "email",
              "stringValue": "={{ $json.text }}"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "78461c36-ba54-4f0f-a38e-183bfafa576c",
      "name": "Create deal in CRM",
      "type": "n8n-nodes-base.pipedrive",
      "position": [
        460,
        360
      ],
      "parameters": {
        "title": "={{ $('Get person from CRM').item.json.Name }} Deal",
        "additionalFields": {}
      },
      "credentials": {
        "pipedriveApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "efe07661-9afc-4184-b558-e1f547b6721f",
      "name": "IF interested",
      "type": "n8n-nodes-base.if",
      "position": [
        240,
        380
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.interested }}",
              "value2": "yes"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7c2b7b59-9d68-4d8c-9b9f-a36ea47526c9",
      "name": "Get response",
      "type": "n8n-nodes-base.code",
      "position": [
        20,
        380
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "let interested = JSON.parse($json[\"message\"][\"content\"]).interested\nlet reason = JSON.parse($json[\"message\"][\"content\"]).reason\n\nreturn {json:{\n interested: interested,\n reason: reason\n}}"
      },
      "typeVersion": 1
    },
    {
      "id": "53f51f8c-5995-4bcd-a038-3018834942e6",
      "name": "Email box 1",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -1300,
        400
      ],
      "parameters": {
        "simple": false,
        "filters": {
          "labelIds": []
        },
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "bb1254ec-676a-4edc-bf4a-a1c66bac78bb",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1880,
        360
      ],
      "parameters": {
        "width": 452.37174177689576,
        "height": 462.1804790107177,
        "content": "## About the workflow\nThe workflow reads every reply that is received from a cold email campaign and qualifies if the lead is interested in a meeting. If the lead is interested, a deal is made in pipedrive. You can add as many email inboxes as you need!\n\n## Setup:\n- Add credentials to the Gmail, OpenAI and Pipedrive Nodes.\n- Add a in_campaign field in Pipedrive for persons. In Pipedrive click on your credentials at the top right, go to company settings > Data fields > Person and click on add custom field. Single option [TRUE/FALSE].\n- If you have only one email inbox, you can delete one of the Gmail nodes.\n- If you have more than two email inboxes, you can duplicate a Gmail node as many times as you like. Just connect it to the Get email node, and you are good to go!\n- In the Gmail inbox nodes, select Inbox under label names and uncheck Simplify."
      },
      "typeVersion": 1
    },
    {
      "id": "c1aaee97-11f4-4e9d-9a71-90ca3f5773a9",
      "name": "Email box 2",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -1300,
        600
      ],
      "parameters": {
        "simple": false,
        "filters": {
          "labelIds": []
        },
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Get email": {
      "main": [
        [
          {
            "node": "Search Person in CRM",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email box 1": {
      "main": [
        [
          {
            "node": "Get email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email box 2": {
      "main": [
        [
          {
            "node": "Get email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get response": {
      "main": [
        [
          {
            "node": "IF interested",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "In campaign?": {
      "main": [
        [
          {
            "node": "Is interested?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF interested": {
      "main": [
        [
          {
            "node": "Create deal in CRM",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is interested?": {
      "main": [
        [
          {
            "node": "Get response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get person from CRM": {
      "main": [
        [
          {
            "node": "In campaign?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Person in CRM": {
      "main": [
        [
          {
            "node": "Get person from CRM",
            "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

How this works

This workflow automates the process of identifying and nurturing potential leads from incoming emails, saving sales teams hours of manual follow-up by intelligently qualifying prospects and creating deals only for those showing genuine interest. It is ideal for sales professionals or small businesses using Pipedrive as their CRM, who receive frequent outreach via Gmail and want to leverage AI to prioritise high-value opportunities without constant oversight. The key step involves OpenAI analysing the email content to determine interest levels, ensuring that only promising leads trigger a new deal in Pipedrive while others are flagged for review.

Use this workflow when handling a steady influx of cold emails or campaign responses that need quick qualification to focus efforts on engaged prospects, particularly in B2B sales cycles. Avoid it for very high-volume inboxes exceeding thousands of emails daily, as the AI processing could introduce delays; instead, consider batch processing alternatives. Common variations include adding Slack notifications for deal creation or integrating with calendar tools to schedule follow-up calls automatically.

About this workflow

Code Pipedrive. Uses pipedrive, openAi, gmailTrigger, stickyNote. Event-driven trigger; 11 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

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

Email & Gmail

Code Pipedrive. Uses pipedrive, openAi, gmailTrigger, stickyNote. Event-driven trigger; 11 nodes.

Pipedrive, OpenAI, Gmail Trigger
Email & Gmail

This n8n template automatically processes inbound form leads, researches their company via their website, and uses AI to write and send a highly personalized "speed to lead" email instantly. It also t

Airtable, HTTP Request, OpenAI +2
Email & Gmail

Send A Chatgpt Email Reply And Save Responses To Google Sheets. Uses openAi, gmailTrigger, stickyNote, gmail. Event-driven trigger; 49 nodes.

OpenAI, Gmail Trigger, Gmail +2
Email & Gmail

Code. Uses openAi, gmailTrigger, stickyNote, gmail. Event-driven trigger; 49 nodes.

OpenAI, Gmail Trigger, Gmail +2
Email & Gmail

This workflow sends a OpenAI GPT reply when an email is received from specific email recipients. It then saves the initial email and the GPT response to an automatically generated Google spreadsheet.

OpenAI, Gmail Trigger, Gmail +2