{
  "id": "i64AR0fKmzfN9D9W",
  "name": "24. AI Client Onboarding Agent: Auto Welcome Email Generator",
  "tags": [],
  "nodes": [
    {
      "id": "fc6370ed-4336-4b79-ace5-d8237948f460",
      "name": "Error Handler",
      "type": "n8n-nodes-base.errorTrigger",
      "position": [
        1264,
        1456
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c2016a43-f619-48cd-98e5-84a4efd95594",
      "name": "Execution Completed",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1344,
        464
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8e7e7958-ed6e-420f-aa4f-ae84ddb456fe",
      "name": "Execution Failure",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1456,
        1456
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0e7be1c3-28cd-4747-a8e8-43666b762b80",
      "name": "Client Checklist",
      "type": "n8n-nodes-base.set",
      "position": [
        656,
        304
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c9c81e80-f2f2-436d-a6cf-48882b0f72ea",
              "name": "=Checklist",
              "type": "string",
              "value": "=\"Checklist\": \"\n1. Account setup\n2. Welcome call scheduled\n3. Document collection\n4. Service configuration\n5. Onboarding session\n6. First milestone review"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c80117c6-0d0d-43cc-b986-8996e03a60a2",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        960,
        800
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash"
      },
      "typeVersion": 1
    },
    {
      "id": "557143d0-abaa-410d-9117-2b60fce3086e",
      "name": "Trigger on New Client Form Submission",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        208,
        304
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1635870855,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/19Hvti1sX6SvjP1Kj8dWFEiksiqn1FJVBoMToP2X6xBw/edit#gid=1635870855",
          "cachedResultName": "Form Responses 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "19Hvti1sX6SvjP1Kj8dWFEiksiqn1FJVBoMToP2X6xBw",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/19Hvti1sX6SvjP1Kj8dWFEiksiqn1FJVBoMToP2X6xBw/edit?usp=drivesdk",
          "cachedResultName": "Onboarding"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "de000539-7f90-49df-9b42-1ceed11b09be",
      "name": "Extract and Structure Client Data",
      "type": "n8n-nodes-base.set",
      "position": [
        400,
        304
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7c333d8f-04cd-4987-9c30-4c7bc26baecb",
              "name": "fields",
              "type": "string",
              "value": "=Name:  {{ $json['Client name'] }} \nEmail:  {{ $json[' email '] }}\nCompany: {{ $json['  Company Name  '] }}\nService Needed: {{ $json['  Services Needed  '] }}\nOther info: {{ $json['  Any other onboarding info  '] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f762750d-85c5-4932-97c7-a40817950af1",
      "name": "Personalize Using Gemini",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        848,
        304
      ],
      "parameters": {
        "text": "=Give me an onboarding check list for an email to the client, give me only email body and don't generate extra text like \"Okay, here's an email template ...\" and start and end on new lines\nstart with:\nHi {{ $('Trigger on New Client Form Submission').item.json['Client name'] }}, \nand end with \nBest regards,\nYour {{ $('Trigger on New Client Form Submission').item.json['  Company Name  '] }} Team\n\n:\nAlso use information from checklist and Fields below\n {{ $json.Checklist }}\n\nFields: {{ $('Extract and Structure Client Data').item.json.fields }}",
        "promptType": "define"
      },
      "typeVersion": 1.5
    },
    {
      "id": "58f03de6-b01a-45bd-b3ce-85c74a17aef5",
      "name": "Send Email to Client",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1344,
        224
      ],
      "parameters": {
        "sendTo": "={{ $('Trigger on New Client Form Submission').item.json[' email '] }}",
        "message": "= {{ $json.text }}",
        "options": {},
        "subject": "=Welcome to Our Service,  {{ $('Trigger on New Client Form Submission').item.json['Client name'] }} "
      },
      "typeVersion": 2.1
    },
    {
      "id": "ea83176b-628e-4775-b015-329aaccc774b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        -240
      ],
      "parameters": {
        "color": 6,
        "width": 404,
        "height": 720,
        "content": "## \ud83d\udfe2 Section 1 \u2013 Trigger & Client Data Capture\n\n**Nodes:**\n\n* \u23f0 **Trigger on New Client Form Submission** \u2192 Fires when a new row is added in Google Sheets (from the client\u2019s form).\n* \ud83e\uddcd **Extract and Structure Client Data** \u2192 Collects and formats client details: name, email, company, services, extra info.\n\n\u2705 **Beginner view:** This is the **doorway**. When a client fills the form, their info is automatically pulled into the workflow.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2618dfbf-cde1-4625-8cb9-f5df2c6bfd0c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        608,
        -208
      ],
      "parameters": {
        "color": 5,
        "width": 484,
        "height": 688,
        "content": "## \ud83d\udcd1 Section 2 \u2013 Checklist & Personalization\n\n**Nodes:**\n\n* \ud83d\udccb **Client Checklist** \u2192 Creates a default onboarding checklist (account setup, welcome call, docs, etc.).\n* \ud83e\udde0 **Personalize Using Gemini** \u2192 Sends client details + checklist to Google Gemini AI \u2192 generates a tailored onboarding email body.\n\n\u2705 **Beginner view:** This is where the **magic happens**. Instead of a boring generic email, each client gets a **customized message** that feels personal.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f8c9108a-30dc-4dd8-8297-d9edf04de5a2",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        -176
      ],
      "parameters": {
        "color": 2,
        "width": 356,
        "height": 800,
        "content": "## \ud83d\udce4 Section 3 \u2013 Delivery & Completion\n\n**Nodes:**\n\n* \ud83d\udce7 **Send Email to Client** \u2192 Sends the personalized onboarding email directly to the client\u2019s inbox.\n* \u2705 **Execution Completed** \u2192 Marks the workflow as successfully finished.\n\n\u2705 **Beginner view:** Think of this as the **final handshake** with the client \u2014 they get a warm, professional onboarding email without you lifting a finger.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d86f3557-e762-47c8-aa46-1ee2785011e5",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1232,
        1024
      ],
      "parameters": {
        "color": 3,
        "width": 356,
        "height": 640,
        "content": "## \ud83d\udea8 Section 4 \u2013 Error Handling\n\n**Nodes:**\n\n* \u26a0\ufe0f **Error Handler** \u2192 Captures any failure in the workflow.\n* \u274c **Execution Failure** \u2192 Defines fallback/alert action if something breaks.\n\n\u2705 **Beginner view:** This is your **safety net**. If an email fails or Gemini is unavailable, the workflow won\u2019t just stop \u2014 you can set it up to alert you.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "bddd955c-a219-4dd3-8691-7452e3ae131a",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1568,
        -480
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c373e332-34d5-41fc-aae0-cd8fbfec950d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1568,
        -144
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 1950,
        "content": "# AI Client Onboarding Agent: Auto Welcome Email Generator\n\nThis workflow automates **welcoming new clients**. When someone submits a form, their details are pulled from Google Sheets, a personalized onboarding checklist is generated using **Google Gemini**, and an email is sent directly to the client. It also includes error handling to ensure nothing is missed.\n\n---\n\n## \ud83d\udfe2 Section 1 \u2013 Trigger & Client Data Capture\n\n**Nodes:**\n\n* \u23f0 **Trigger on New Client Form Submission** \u2192 Fires when a new row is added in Google Sheets (from the client\u2019s form).\n* \ud83e\uddcd **Extract and Structure Client Data** \u2192 Collects and formats client details: name, email, company, services, extra info.\n\n\u2705 **Beginner view:** This is the **doorway**. When a client fills the form, their info is automatically pulled into the workflow.\n\n---\n\n## \ud83d\udcd1 Section 2 \u2013 Checklist & Personalization\n\n**Nodes:**\n\n* \ud83d\udccb **Client Checklist** \u2192 Creates a default onboarding checklist (account setup, welcome call, docs, etc.).\n* \ud83e\udde0 **Personalize Using Gemini** \u2192 Sends client details + checklist to Google Gemini AI \u2192 generates a tailored onboarding email body.\n\n\u2705 **Beginner view:** This is where the **magic happens**. Instead of a boring generic email, each client gets a **customized message** that feels personal.\n\n---\n\n## \ud83d\udce4 Section 3 \u2013 Delivery & Completion\n\n**Nodes:**\n\n* \ud83d\udce7 **Send Email to Client** \u2192 Sends the personalized onboarding email directly to the client\u2019s inbox.\n* \u2705 **Execution Completed** \u2192 Marks the workflow as successfully finished.\n\n\u2705 **Beginner view:** Think of this as the **final handshake** with the client \u2014 they get a warm, professional onboarding email without you lifting a finger.\n\n---\n\n## \ud83d\udea8 Section 4 \u2013 Error Handling\n\n**Nodes:**\n\n* \u26a0\ufe0f **Error Handler** \u2192 Captures any failure in the workflow.\n* \u274c **Execution Failure** \u2192 Defines fallback/alert action if something breaks.\n\n\u2705 **Beginner view:** This is your **safety net**. If an email fails or Gemini is unavailable, the workflow won\u2019t just stop \u2014 you can set it up to alert you.\n\n---\n\n## \ud83d\udcca Summary Table\n\n| Section           | Key Nodes                           | Purpose                                | Beginner Benefit               |\n| ----------------- | ----------------------------------- | -------------------------------------- | ------------------------------ |\n| \ud83d\udfe2 Trigger & Data | Google Sheets Trigger, Data Extract | Capture client info                    | Auto-collects form submissions |\n| \ud83d\udcd1 Checklist & AI | Checklist, Gemini                   | Generate personalized onboarding email | Each client feels special      |\n| \ud83d\udce4 Delivery       | Gmail, Execution Completed          | Send email & close flow                | Client gets email instantly    |\n| \ud83d\udea8 Error Handling | Error Trigger, Failure Node         | Catch issues                           | Ensures nothing is missed      |\n\n---\n\n## \ud83c\udf1f Why This Workflow Rocks\n\n* **Saves hours** \u2192 no manual onboarding emails\n* **Personalized at scale** \u2192 Gemini tailors messages per client\n* **Error-proof** \u2192 built-in error handling keeps you safe\n* **Scalable** \u2192 works for 10 or 10,000 clients\n\n---\n\n\ud83d\udc49 **Example Flow in Action:**\n\n1. A client named *Sarah* fills the onboarding form.\n2. Workflow captures her details \u2192 \u201cSarah, MarketingPro Agency, Needs Analytics Setup.\u201d\n3. Gemini creates a **custom email**:\n\n   > *Hi Sarah, welcome aboard! Here\u2019s your onboarding plan tailored for Analytics Setup\u2026*\n4. Gmail sends it instantly.\n5. You get notified only if something fails.\n\n---"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "70bdd02d-8d6d-45dc-9cb4-d668e3fb725c",
  "connections": {
    "Error Handler": {
      "main": [
        [
          {
            "node": "Execution Failure",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Client Checklist": {
      "main": [
        [
          {
            "node": "Personalize Using Gemini",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Personalize Using Gemini",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Personalize Using Gemini": {
      "main": [
        [
          {
            "node": "Send Email to Client",
            "type": "main",
            "index": 0
          },
          {
            "node": "Execution Completed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract and Structure Client Data": {
      "main": [
        [
          {
            "node": "Client Checklist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger on New Client Form Submission": {
      "main": [
        [
          {
            "node": "Extract and Structure Client Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}