{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "98b71061-984e-4aa5-b8eb-cb25278179bc",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -80,
        0
      ],
      "parameters": {
        "text": "=Name: {{ $json.Name }}\nQuestion:  {{ $json.Question }}",
        "options": {
          "systemMessage": "You are an AI assistant helping Robert respond to web form submissions. Each submission includes a name and a question from the user. Your job is to generate:\n\nA professional email response from Robert, and\n\nA short SMS/text message to be sent as a follow-up.\n\nThe email should:\n\nGreet the person by name.\n\nReference the submitted question.\n\nAsk at least one clarifying or engaging question.\n\nLet them know Robert will be in contact very soon.\n\nAsk how urgent the request is so it can be prioritized.\n\nBe signed \u201cRobert\u201d.\n\nThe text message should:\n\nBe casual and friendly.\n\nConfirm that the message was received.\n\nMention that I will follow up shortly.\n\nAsk how urgent the request is.\n\nOutput format: \n\n{\n\t\"email\": \"response\",\n\t\"text\": \"response\"\n}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "bae6fafa-1bbc-40f2-b14e-84a6ea017cee",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -160,
        240
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "4fbc1c0a-e526-443c-a034-b07b4139be7a",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        140,
        220
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"email\": \"response\",\n\t\"text\": \"response\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "16ef7a3a-fd6c-4a14-a907-29ebe50d4bc1",
      "name": "Form to be embedded on website",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -320,
        -180
      ],
      "parameters": {
        "options": {},
        "formTitle": "Web Contact Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Name"
            },
            {
              "fieldLabel": "Email"
            },
            {
              "fieldLabel": "Question"
            },
            {
              "fieldLabel": "Phone",
              "placeholder": "+1234567890"
            }
          ]
        },
        "formDescription": "Web Contact Form"
      },
      "typeVersion": 2.2
    },
    {
      "id": "0fa3ed52-79d5-44eb-a4c7-6fca623d9fc0",
      "name": "Wait some time to write the email response",
      "type": "n8n-nodes-base.wait",
      "position": [
        480,
        -260
      ],
      "parameters": {
        "unit": "minutes",
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "41a5b7a0-356d-406a-9e1a-1a8e7c05d207",
      "name": "Wait some time to write the text response",
      "type": "n8n-nodes-base.wait",
      "position": [
        420,
        360
      ],
      "parameters": {
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "ab4bf90b-a9c5-4854-81eb-62ebd770d6f0",
      "name": "Send email to the submitter",
      "type": "n8n-nodes-base.microsoftOutlook",
      "position": [
        760,
        -280
      ],
      "parameters": {
        "subject": "Web form - How can we help?",
        "bodyContent": "={{ $json.output.email }}",
        "toRecipients": "={{ $('Form to be embedded on website').item.json.Email }}",
        "additionalFields": {}
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "8468ef5a-ad4e-43b4-b737-afba226e92e8",
      "name": "Send text to the submitter",
      "type": "n8n-nodes-base.twilio",
      "position": [
        720,
        360
      ],
      "parameters": {
        "to": "={{ $('Form to be embedded on website').item.json.Phone }}",
        "from": "your twillio number here",
        "message": "={{ $json.output.text }}",
        "options": {}
      },
      "credentials": {
        "twilioApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "74b1609d-d766-4146-98d6-3f228567ccf7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        -400
      ],
      "parameters": {
        "width": 1460,
        "height": 1080,
        "content": "### Web-Form Auto-Responder: Instant Email + SMS Follow-Up\n**LinkedIn:** https://www.linkedin.com/in/robertbreen\n**Email:** rbreen@ynteractive.com  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "4f1d375a-2eb9-4a48-bb6d-36b0ae154ce9",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1300,
        -400
      ],
      "parameters": {
        "color": 5,
        "width": 800,
        "height": 1080,
        "content": "### Web-Form Auto-Responder: Instant Email + SMS Follow-Up\n\n---\n\n#### \ud83d\udcdd Description\nEmbed a simple web form on your site and let this workflow:\n\n1. **Collect** a visitor\u2019s **name, email, phone, and question**  \n2. **Generate** a professional email *and* a friendly SMS using **GPT-4o-mini**  \n3. **Delay** briefly (1 min by default) to simulate human writing time  \n4. **Send** the AI-crafted email via Microsoft Outlook  \n5. **Send** the AI-crafted text via Twilio  \n\nPerfect for solo consultants or small teams who want rapid, personalized responses without manual typing.\n\n---\n\n#### \u2699\ufe0f Setup Instructions\n\n1. **Import the workflow**  \n   - n8n \u2192 **Workflows \u2192 Import from File** (or **Paste JSON**) \u2192 **Save**\n\n2. **Add credentials**  \n   | Service | Where to get credentials | Node(s) to update |\n   |---------|-------------------------|-------------------|\n   | **OpenAI** | <https://platform.openai.com> \u2192 create API key | **OpenAI Chat Model** |\n   | **Microsoft Outlook** | Azure/M365 account with email-send permissions | **Send email to the submitter** |\n   | **Twilio** | <https://console.twilio.com> \u2192 Account SID, Auth Token | **Send text to the submitter** |\n\n3. **Embed the form on your website**  \n   - Open **Form to be embedded on website**  \n   - Click **\u201cEmbed\u201d** \u2192 copy the iframe code \u2192 paste into your contact page\n\n4. **Set your Twilio \u201cFrom\u201d number**  \n   - In **Send text to the submitter**, change the from phone number to your verified Twilio number\n\n5. **Adjust wait times (optional)**  \n   - *Wait some time to write the email response* (default 1 min)  \n   - *Wait some time to write the text response* (default 1 min)\n\n6. **Customize the AI prompt (optional)**  \n   - Edit the **AI Agent** system message to tweak tone, questions asked, or signature\n\n7. **Test the flow**  \n   - Open the form URL (generated by the Form node)  \n   - Submit a test entry \u2192 after ~1 min you should receive both an email and an SMS\n\n8. **Activate**  \n   - Toggle **Active** so the form handles real submissions 24/7\n\n---\n\n#### \ud83e\udde9 Customization Ideas\n- Pipe form data into **Pipedrive, HubSpot, or Airtable** for lead tracking  \n- Trigger a **Slack/Teams** alert to notify your team of hot questions  \n- Add a **calendar link** in the email so visitors can book a call instantly  \n- Use a **language-detection node** to reply in the visitor\u2019s native language\n\n---\n\n### Contact\n- **Email:** rbreen@ynteractive.com  \n- **Website:** https://ynteractive.com  \n- **YouTube:** https://www.youtube.com/@ynteractivetraining  \n- **LinkedIn:** https://www.linkedin.com/in/robertbreen\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "Wait some time to write the text response",
            "type": "main",
            "index": 0
          },
          {
            "node": "Wait some time to write the email response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Form to be embedded on website": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait some time to write the text response": {
      "main": [
        [
          {
            "node": "Send text to the submitter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait some time to write the email response": {
      "main": [
        [
          {
            "node": "Send email to the submitter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}