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 →
{
"name": "ConfortPlace - Scheduling Agent (MVP)",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "confortplace-schedule-visit",
"responseMode": "lastNode",
"options": {}
},
"id": "visit-webhook",
"name": "Lead Requests Visit",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
0,
0
]
},
{
"parameters": {
"content": "Calendar is mocked. Production flow must use Google OAuth, free/busy, 15-minute buffers, explicit confirmation, revalidation and idempotent event creation.",
"height": 140,
"width": 400
},
"id": "schedule-note",
"name": "Implementation Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
0,
-220
]
},
{
"parameters": {
"jsCode": "const start = Date.now() + 24 * 60 * 60 * 1000; const slots = [0, 1, 2].map(days => ({ start: new Date(start + days * 86400000).toISOString(), duration_minutes: 30, timezone: 'America/Toronto' })); return [{ json: { request: $json.body || $json, slots, source: 'calendar_mock', status: 'awaiting_confirmation' } }];"
},
"id": "check-propose",
"name": "Check Availability + Propose Slots (Mock)",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
260,
0
]
},
{
"parameters": {
"jsCode": "const confirmed = Boolean($json.request?.confirmed_slot); return [{ json: { ...$json, confirmed, calendar_event_id: confirmed ? `MOCK-${$execution.id}` : null, delivery_status: confirmed ? 'confirmation_draft' : 'slots_proposed', crm_status: confirmed ? 'visit_scheduled' : 'visit_requested' } }];"
},
"id": "confirm-create-update",
"name": "Confirm + Create Event + Update CRM (Mock)",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
540,
0
]
}
],
"connections": {
"Lead Requests Visit": {
"main": [
[
{
"node": "Check Availability + Propose Slots (Mock)",
"type": "main",
"index": 0
}
]
]
},
"Check Availability + Propose Slots (Mock)": {
"main": [
[
{
"node": "Confirm + Create Event + Update CRM (Mock)",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1",
"timezone": "America/Toronto"
},
"versionId": "33333333-3333-4333-8333-333333333333",
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
ConfortPlace - Scheduling Agent (MVP). Webhook trigger; 4 nodes.
Source: https://github.com/Jehosua97/n8nMultiServiceAutomation/blob/main/workflows/n8n/scheduling-agent.workflow.json — 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.
Jigsaw API key for image processing, I use this as a gatekeeper/second pair of eyes. LINK to their website https://jigsawstack.com/ SECOND A postgress DATABASE (I use Supabase) LlamaCloud for the pars
Onsite Photos to Jobs (SMS Agent). Uses dataTable, twilio, httpRequest, airtable. Webhook trigger; 62 nodes.
W1 - IN WhatsApp Adapter (Secure + Fast ACK). Uses postgres, redis, httpRequest. Webhook trigger; 50 nodes.
W1 - IN WhatsApp Adapter (Secure + Fast ACK). Uses postgres, redis, httpRequest. Webhook trigger; 48 nodes.