This workflow corresponds to n8n.io template #7306 — we link there as the canonical source.
This workflow follows the Agent → OpenAI Chat 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": "2393eb8d-1891-4241-a10a-a57fd98c55f3",
"name": "Edit Fields1",
"type": "n8n-nodes-base.set",
"position": [
336,
624
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "57d266ad-fa73-4e7a-8630-200e6bdc0da0",
"name": "payload.email",
"type": "string",
"value": "={{ $json.payload.email }}"
},
{
"id": "01b92620-7ee3-4805-bee8-ac8a3e9971fd",
"name": "payload.questions_and_answers[0].answer",
"type": "string",
"value": "={{ $json.payload.questions_and_answers[0].answer }}"
},
{
"id": "3742a6c0-d214-4020-bab3-cdae2c7a297c",
"name": "payload.name",
"type": "string",
"value": "={{ $json.payload.name }}"
},
{
"id": "a195c86d-8f23-4787-8a44-15d9e15d2396",
"name": "payload.scheduled_event.start_time",
"type": "string",
"value": "={{ $json.payload.scheduled_event.start_time }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "fb75bd8b-aa90-4819-87de-283fc81ab718",
"name": "AI Agent1",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
544,
624
],
"parameters": {
"text": "=Name: {{ $json.payload.name }} About: {{ $json.payload.questions_and_answers[0].answer }} Start Time: {{ $json.payload.scheduled_event.start_time }}",
"options": {
"systemMessage": "You are a helpful assistant. Write an email to the user. Elaborate on how we can help them with their topic and give my fake phone number for now 111-111-1111. Write the email in html. also put the meeting date in there. \n\n\noutput like this. \n\n{\n\t\"email\": \"html email\"\n}"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "2c4476e4-5e1e-4b8c-af27-7a9f793ec018",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
496,
864
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "b554a77a-3886-4f1b-96ef-5a96a75824c0",
"name": "Structured Output Parser1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
720,
832
],
"parameters": {
"jsonSchemaExample": "{\n\t\"email\": \"html email\",\n\t\"slack\": \"Slack Message\"\n}"
},
"typeVersion": 1.3
},
{
"id": "5c846301-8318-471a-b4c1-8554ce97d760",
"name": "Send a message2",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
912,
560
],
"parameters": {
"subject": "Calendly Details",
"bodyContent": "={{ $json.output.email }}",
"toRecipients": "={{ $('Edit Fields1').item.json.payload.email }}",
"additionalFields": {
"bodyContentType": "html"
}
},
"credentials": {
"microsoftOutlookOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "1f87bd9f-9127-4436-b6fe-1104dd47844c",
"name": "Sticky Note16",
"type": "n8n-nodes-base.stickyNote",
"position": [
-272,
-320
],
"parameters": {
"width": 1680,
"content": "## \ud83d\udcec Need Help or Want to Customize This?\n\ud83d\udce7 [robert@ynteractive.com](mailto:robert@ynteractive.com) \n\ud83d\udd17 [LinkedIn](https://www.linkedin.com/in/robert-breen-29429625/)"
},
"typeVersion": 1
},
{
"id": "75ddecca-3f1a-4e68-b1b4-c6d0b1a9288c",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-272,
-128
],
"parameters": {
"color": 4,
"width": 1680,
"height": 1168,
"content": "\n### \u2699\ufe0f Step-by-Step Setup Instructions\n\n#### 1. \ud83d\udd17 Calendly API Setup\n- Go to **Credentials \u2192 Add Credential \u2192 Calendly API** in n8n.\n- Authenticate with your Calendly personal access token.\n- Set your **Calendly Trigger** node to listen for `invitee.created` events.\n\n#### 2. \ud83d\udce7 Microsoft Outlook Setup\n- Add credentials via **Microsoft Outlook OAuth2** in n8n.\n- Select the credential in the \"Send a message\" node.\n- This node will send an HTML-formatted response to the user's email.\n\n#### 3. \ud83e\udd16 OpenAI AI Agent\n- Add your OpenAI key under **Credentials \u2192 OpenAI API**.\n- The AI Agent prompt is already pre-configured to:\n - Generate an **HTML email**\n - Mention how you can help\n - Include the user's question, meeting date, and your placeholder phone number (`111-111-1111`)\n\n---"
},
"typeVersion": 1
},
{
"id": "af63afc3-8917-4399-a349-696a0477796d",
"name": "Calendly Event",
"type": "n8n-nodes-base.calendlyTrigger",
"position": [
32,
624
],
"parameters": {
"events": [
"invitee.created"
]
},
"credentials": {
"calendlyApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"connections": {
"AI Agent1": {
"main": [
[
{
"node": "Send a message2",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "AI Agent1",
"type": "main",
"index": 0
}
]
]
},
"Calendly Event": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Agent1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "AI Agent1",
"type": "ai_outputParser",
"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.
calendlyApimicrosoftOutlookOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n automation sends a personalized email to the person who booked a meeting via Calendly. It uses an AI agent to craft a helpful, human-sounding HTML email that includes your fake phone number () and the meeting date. Triggers when someone books a meeting in Calendly (…
Source: https://n8n.io/workflows/7306/ — 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 automation notifies you whenever someone books a meeting with you via Calendly. It sends a customized email via Outlook and a Slack message using details from the event. Listens for new Calen
Microsoft Outlook AI Email Assistant. Uses manualTrigger, stickyNote, microsoftOutlook, lmChatOpenAi. Event-driven trigger; 28 nodes.
Provide your Office 365 credentials to connect Outlook. Generate an API token and have a board with your contact details. Obtain an API key (or personal access token) and set up a base to store: Conta
Sales teams, BDRs, account managers, and customer success professionals who want to show up prepared for every meeting. Perfect for anyone using Calendly who wants to automate prospect research and ne
Automatically analyze the sentiment of Facebook posts and their audience comments using GPT-4 to identify trends and potential PR risks. 🧠💬 This workflow fetches recent posts via the Facebook Graph AP