{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "11e4e4bf-3381-445e-9b0a-a1d96d741b1a",
      "name": "Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        460,
        0
      ],
      "parameters": {
        "html": "={{ $json.data }}",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "4e033490-ea17-4500-99f3-94c86b6860d8",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1620,
        0
      ],
      "parameters": {
        "sendTo": "={{ $('Intake Form Submitted').item.json.Email }}",
        "message": "=Hey {{ $('Intake Form Submitted').item.json['First name'].split(\" \").first() }}, I just got your form submission.\n<br><br>\n{{ $json.message.content }} Thanks for getting in touch, looking forward to chatting with you later. \n<br>Feel free to reach out if you have any questions:)\n<br><br>\nBest,<br>\nAbdul",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Thanks for reaching out"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "053a900d-9097-4713-b859-7f956aafca32",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        -100
      ],
      "parameters": {
        "color": 6,
        "width": 1040,
        "height": 320,
        "content": "## Intake form submitted -> Get website copy"
      },
      "typeVersion": 1
    },
    {
      "id": "f55e9c3b-24ab-46da-9651-cd11ce7c357d",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1400,
        0
      ],
      "parameters": {
        "amount": 250
      },
      "typeVersion": 1.1
    },
    {
      "id": "b783788e-7228-4a7f-9788-b37cd037e540",
      "name": "Intake Form Submitted",
      "type": "n8n-nodes-base.typeformTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "formId": "LlUNhoPN"
      },
      "credentials": {
        "typeformApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "e1a7b783-7c11-4a9a-af9c-d05ade5fa333",
      "name": "Scrape Website",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        240,
        0
      ],
      "parameters": {
        "url": "={{ $json['What\\'s your website URL?'] }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "fa93ff64-dbf9-4a4a-9715-48dbe33cd84e",
      "name": "Website Plain Copy",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        680,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You're a helpful, intelligent web scraping assistant."
            },
            {
              "content": "Your task is to take the raw markdown of a website and convert it into structured data using the following format:\n\n{\"plainTextWebsiteCopy\":\"a long string containing just the text of the site, no formatting\",\n\"oneLineSummary\":\"brief summary of what the website is and what it's about\"}"
            },
            {
              "content": "=Markdown: {{ $json.data }}"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "0ead9204-97ca-422d-ad17-5bd9f5283d27",
      "name": "Email Customization",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1040,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "GPT-4O"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=You are an intelligent email copy writing assistant"
            },
            {
              "content": "=Below are details from a website scrape. Use it to customize an email to a prospect. Write in a short, succinct way, 1-2 sentences only.\nUse this template and (fill in the variables with data from the site). Output the email copy only and nothing else:\n\n\"(CompanyName) looks great, love your (uniqueValueProp/something interesting).\"\n\nRules:\n-Write in a casual human tone, don't just recite the text from the website. (\"love that you're in automation\" instead of \"love that you're helping small to medium plumbing businesses scale through automating their admin work\")\n-Keep it short\n-If you can't generate something, please output nothing.\n\n--\n\nWebsite Copy: {{ $json.message.content.plainTextWebsiteCopy }}\none line summary: {{ $json.message.content.oneLineSummary }}"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "a4321ddb-0673-4332-973a-b28515c918ba",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1000,
        -100
      ],
      "parameters": {
        "color": 6,
        "width": 800,
        "height": 320,
        "content": "## Write a \"customized\" thank you email"
      },
      "typeVersion": 1
    },
    {
      "id": "8b3fbe12-0037-46b0-8460-664c31be57d7",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        -100
      ],
      "parameters": {
        "width": 620,
        "height": 1260,
        "content": "# Send a personalized thank-you email after form submission using website insights\n## Overview\nImpress your leads with ultra-personalized \u201cthank you\u201d emails that look hand-written \u2014 sent automatically seconds after they submit your intake form.\n\nThis workflow instantly scrapes the prospect's website, extracts meaningful copy, and uses AI to write a custom thank-you message referencing something specific from their site. It gives the impression you immediately reviewed their business and crafted a thoughtful reply \u2014 without lifting a finger.\n\n### Who\u2019s it for\n- Agencies and consultants using intake forms  \n- Freelancers booking discovery calls  \n- B2B businesses that want high-touch first impressions  \n- Sales teams automating initial follow-ups  \n\n### How it works\n- Triggered when a form (e.g. Tally, Typeform) is submitted  \n- Scrapes the website URL provided in the form  \n- Converts HTML to Markdown and extracts plain copy  \n- Uses AI to write a personalized thank-you message referencing the site  \n- Waits briefly to simulate real typing delay  \n- Sends the message via Gmail (or any email provider)\n\n### Example use case\n> Prospect submits a form with their website: `coolstartup.ai`  \n>  \n> 30 seconds later, they receive:  \n>  \n> _\u201cThanks for reaching out! I just checked out Cool Startup\u2019s homepage \u2014 love the clean UX and mission around AI for teams. Looking forward to diving into how we might collaborate!\u201d_\n\n### How to set up\n1. Connect your form tool (e.g. Tally or Typeform)  \n2. Connect Gmail or another email provider  \n3. Customize the AI prompt to match your tone  \n4. Set the wait time (e.g. 30 seconds) for a realistic delay  \n5. Update your website scraping logic if needed  \n\n### Requirements\n- Form tool with webhook support  \n- OpenAI (or other LLM) credentials  \n- Email sending integration (Gmail, Mailgun, Postmark, etc.)\n\n### How to customize\n- Edit the email tone (casual, formal, funny, etc.)  \n- Add CRM integration to log form submission and response  \n- Trigger additional workflows like lead scoring or Slack alerts  \n- Add fallback logic if the website doesn\u2019t scrape cleanly\n"
      },
      "typeVersion": 1
    },
    {
      "id": "94f3c35a-c552-496c-ac87-397934418691",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        260
      ],
      "parameters": {
        "color": 5,
        "width": 440,
        "height": 240,
        "content": "## Hey, I'm Abdul \ud83d\udc4b\n### I build growth systems for consultants & agencies. If you want to work together or need help automating your business, check out my website: \n### **https://www.builtbyabdul.com/**\n### Or email me at **abdul@buildabdul.com**\n### Have a lovely day ;)`"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Markdown": {
      "main": [
        [
          {
            "node": "Website Plain Copy",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Website": {
      "main": [
        [
          {
            "node": "Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Website Plain Copy": {
      "main": [
        [
          {
            "node": "Email Customization",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email Customization": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Intake Form Submitted": {
      "main": [
        [
          {
            "node": "Scrape Website",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}