This workflow corresponds to n8n.io template #6716 — we link there as the canonical source.
This workflow follows the Agent → Form Trigger 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 →
{
"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
}
]
]
}
}
}
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.
microsoftOutlookOAuth2ApiopenAiApitwilioApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Embed a simple web form on your site and let this workflow: Collect a visitor’s name, email, phone, and question Generate a professional email and a friendly SMS using GPT-4o-mini Delay briefly (1 min by default) to simulate human writing time Send the AI-crafted email via…
Source: https://n8n.io/workflows/6716/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This n8n workflow automates lead engagement and qualification for real estate buyers. When someone submits a form on your real estate website, the system instantly responds via SMS, starting a convers
Door-to-door HVAC companies seeking automated lead capture and appointment scheduling.
This workflow streamlines your content organization process by automatically analyzing new blog posts in your GitHub repository and assigning appropriate categories and tags using OpenAI. It compares
This workflow automates athlete performance monitoring through two parallel pipelines: real-time session analysis triggered by training form submissions, and scheduled weekly performance summaries. De
Microsoft Outlook AI Email Assistant. Uses manualTrigger, stickyNote, microsoftOutlook, lmChatOpenAi. Event-driven trigger; 28 nodes.