Workflow d'approbation des rendez-vous d'installation avec Slack et Gmail
Ceci est unTicket Management, Multimodal AIworkflow d'automatisation du domainecontenant 13 nœuds.Utilise principalement des nœuds comme If, Set, Gmail, Slack, FormTrigger. Automatiser l'approbation des rendez-vous d'installation avec Slack et les formulaires Gmail
- •Compte Google et informations d'identification Gmail API
- •Token Bot Slack ou URL Webhook
Nœuds utilisés (13)
Catégorie
{
"id": "F3ZBYce4AMuybZcF",
"meta": {
"instanceId": "efe08e2da7cae43f565dfacaafdb0e67025886141ccd3ddbe001880f7b5ecf5b"
},
"name": "Installation Booking Approval Workflow with Slack and Gmail",
"tags": [],
"nodes": [
{
"id": "57b8a226-402b-42cf-b6bb-090195a862d9",
"name": "Déclencheur Formulaire : Réservation d'installation",
"type": "n8n-nodes-base.formTrigger",
"position": [
-16,
496
],
"webhookId": "711021d0-5405-4e16-a638-16e32c093f39",
"parameters": {
"options": {},
"formTitle": "Installation Schedule Booking Form",
"formFields": {
"values": [
{
"fieldLabel": "Full Name",
"requiredField": true
},
{
"fieldType": "email",
"fieldLabel": "Email Address",
"requiredField": true
},
{
"fieldLabel": "Phone Number",
"requiredField": true
},
{
"fieldType": "=date",
"fieldLabel": "Booking Date",
"fieldOptions": {
"values": [
{}
]
},
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Preferred Time (PST)",
"fieldOptions": {
"values": [
{
"option": "09:00"
},
{
"option": "11:00"
},
{
"option": "14:00"
},
{
"option": "16:00"
}
]
},
"requiredField": true
}
]
},
"formDescription": "Installation Schedule Booking Form"
},
"typeVersion": 2.2
},
{
"id": "9f165f71-d038-49d0-8277-41c42a8ab0af",
"name": "Définir les champs : Variables de configuration",
"type": "n8n-nodes-base.set",
"position": [
240,
496
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1c5bdf30-d39c-42ac-a780-dc5c35a6aa17",
"name": "CUSTOMER_NAME",
"type": "string",
"value": "={{ $('Form Trigger: Installation Booking').item.json['Full Name'] }}"
},
{
"id": "3b70d00a-c884-4721-b9cb-018ed47e4818",
"name": "CUSTOMER_EMAIL",
"type": "string",
"value": "={{ $('Form Trigger: Installation Booking').item.json['Email Address'] }}"
},
{
"id": "4c70d00a-c884-4721-b9cb-018ed47e4819",
"name": "CUSTOMER_PHONE",
"type": "string",
"value": "={{ $('Form Trigger: Installation Booking').item.json['Phone Number'] }}"
},
{
"id": "5c70d00a-c884-4721-b9cb-018ed47e4820",
"name": "BOOKING_DATE",
"type": "string",
"value": "={{ $('Form Trigger: Installation Booking').item.json['Booking Date'] }}"
},
{
"id": "6c70d00a-c884-4721-b9cb-018ed47e4821",
"name": "BOOKING_TIME",
"type": "string",
"value": "={{ $('Form Trigger: Installation Booking').item.json['Preferred Time (PST)'] }}"
},
{
"id": "7c70d00a-c884-4721-b9cb-018ed47e4822",
"name": "SLACK_CHANNEL_ID",
"type": "string",
"value": "#installations"
},
{
"id": "8c70d00a-c884-4721-b9cb-018ed47e4823",
"name": "COMPANY_NAME",
"type": "string",
"value": "Your Company Name"
},
{
"id": "9c70d00a-c884-4721-b9cb-018ed47e4824",
"name": "CONTACT_PERSON",
"type": "string",
"value": "Your Name"
},
{
"id": "10c70d00a-c884-4721-b9cb-018ed47e4825",
"name": "RESCHEDULE_LINK",
"type": "string",
"value": "https://your-booking-form-url.com"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9242d614-bc41-4dd9-9b68-ff2938d128d4",
"name": "Slack : Demande d'approbation",
"type": "n8n-nodes-base.slack",
"position": [
496,
496
],
"webhookId": "99741701-02dc-46e6-b578-d492b7de6983",
"parameters": {
"select": "channel",
"message": "=🔧 **New Installation Request**\n\n👤 **Customer:** {{ $json.CUSTOMER_NAME }}\n📧 **Email:** {{ $json.CUSTOMER_EMAIL }}\n📞 **Phone:** {{ $json.CUSTOMER_PHONE }}\n\n📅 **Requested Date/Time:** {{ $json.BOOKING_DATE }} at {{ $json.BOOKING_TIME }} PST\n\n❓ **Do we have an available installer for this slot?**",
"options": {},
"channelId": {
"__rl": true,
"mode": "list",
"value": ""
},
"operation": "sendAndWait",
"approvalOptions": {
"values": {
"approvalType": "double",
"disapproveLabel": "No installer available"
}
}
},
"typeVersion": 2.3
},
{
"id": "7331465f-d0d0-47a2-8451-5aab04607305",
"name": "Si : Vérifier le statut d'approbation",
"type": "n8n-nodes-base.if",
"position": [
736,
496
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d0117e5a-8b9a-407a-8412-1c7decbdd759",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.data.approved }}",
"rightValue": "Approve"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "a751b5f3-ed2e-4a93-b061-539688520478",
"name": "Gmail : Envoyer un e-mail de confirmation",
"type": "n8n-nodes-base.gmail",
"position": [
992,
384
],
"webhookId": "3052ddc4-ba25-47ca-bb42-c7a55652901a",
"parameters": {
"sendTo": "={{ $('Set Fields: Configuration Variables').item.json.CUSTOMER_EMAIL }}",
"message": "=Hi {{ $('Set Fields: Configuration Variables').item.json.CUSTOMER_NAME }},\n\nGreat news! We've confirmed your installation appointment.\n\n📅 **Date:** {{ $('Set Fields: Configuration Variables').item.json.BOOKING_DATE }}\n⏰ **Time:** {{ $('Set Fields: Configuration Variables').item.json.BOOKING_TIME }} PST\n\nOur installer will contact you shortly to confirm final details and provide any preparation instructions.\n\nIf you need to make any changes, please contact us as soon as possible.\n\nBest regards,\n{{ $('Set Fields: Configuration Variables').item.json.CONTACT_PERSON }}\n{{ $('Set Fields: Configuration Variables').item.json.COMPANY_NAME }}",
"options": {},
"subject": "=✅ Installation Confirmed - {{ $('Set Fields: Configuration Variables').item.json.BOOKING_DATE }}",
"emailType": "text"
},
"typeVersion": 2.1
},
{
"id": "852c2a56-3558-44ac-9af9-1cd28bedb52b",
"name": "Gmail : Envoyer un e-mail de replanification",
"type": "n8n-nodes-base.gmail",
"position": [
992,
592
],
"webhookId": "13839f70-e63f-4ec3-b526-00aa455fd899",
"parameters": {
"sendTo": "={{ $('Set Fields: Configuration Variables').item.json.CUSTOMER_EMAIL }}",
"message": "=Hi {{ $('Set Fields: Configuration Variables').item.json.CUSTOMER_NAME }},\n\nThank you for your interest in our installation services.\n\nUnfortunately, we don't have an installer available for your requested time slot:\n📅 **Date:** {{ $('Set Fields: Configuration Variables').item.json.BOOKING_DATE }}\n⏰ **Time:** {{ $('Set Fields: Configuration Variables').item.json.BOOKING_TIME }} PST\n\nPlease reschedule your appointment using this link:\n🔗 {{ $('Set Fields: Configuration Variables').item.json.RESCHEDULE_LINK }}\n\nWe apologize for any inconvenience and look forward to serving you at a different time.\n\nBest regards,\n{{ $('Set Fields: Configuration Variables').item.json.CONTACT_PERSON }}\n{{ $('Set Fields: Configuration Variables').item.json.COMPANY_NAME }}",
"options": {},
"subject": "=⏰ Please Reschedule Your Installation",
"emailType": "text"
},
"typeVersion": 2.1
},
{
"id": "665cac83-98f4-4789-ab7a-11754f9bc0fa",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
-208
],
"parameters": {
"width": 736,
"height": 672,
"content": "## 🔧 Installation Booking Approval Workflow\n\n**What this workflow does:**\nAutomates the approval process for installation bookings by collecting form submissions, requesting team approval via Slack, and sending automated email responses.\n\n**Who's it for:**\nService businesses that need to:\n- Collect installation booking requests\n- Get team approval before confirming appointments\n- Send automated email confirmations or reschedule requests\n\n**How it works:**\n1. Customer fills out installation booking form\n2. Team gets notified via Slack with approval buttons\n3. Based on approval/rejection, customer receives confirmation or reschedule email\n\n**Setup Requirements:**\n- Slack workspace with channel for notifications\n- Gmail account for sending emails\n- Form trigger URL to embed on your website\n\n**Configuration:**\nUpdate the variables in the \"Set Fields\" node:\n- SLACK_CHANNEL_ID: Your Slack channel\n- COMPANY_NAME: Your business name\n- CONTACT_PERSON: Your name\n- RESCHEDULE_LINK: Link to your booking form\n\n**Security Note:**\nNo API keys are hardcoded - all credentials are managed through n8n's secure connection system."
},
"typeVersion": 1
},
{
"id": "0abbb78d-aaac-41ca-aab5-ca1653b43b2c",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
672
],
"parameters": {
"width": 200,
"height": 140,
"content": "**Step 1**\nCustomer submits installation booking form with contact details and preferred date/time"
},
"typeVersion": 1
},
{
"id": "faf5a165-9a69-42c9-be57-abb67e209269",
"name": "Note adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
224,
672
],
"parameters": {
"width": 200,
"height": 140,
"content": "**Step 2**\nSet up configuration variables that can be easily customized for your business"
},
"typeVersion": 1
},
{
"id": "a89a9974-8b5a-4c5c-b79f-88df7961493a",
"name": "Note adhésive 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
464,
672
],
"parameters": {
"width": 200,
"height": 140,
"content": "**Step 3**\nSend formatted message to Slack channel with approval buttons for the team"
},
"typeVersion": 1
},
{
"id": "5cf683dc-bbdc-4f59-ac2b-aacb72efe823",
"name": "Note adhésive 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
672
],
"parameters": {
"width": 200,
"height": 140,
"content": "**Step 4**\nCheck if the team approved or rejected the booking request"
},
"typeVersion": 1
},
{
"id": "4d48f4a4-d01b-4e39-b3f5-23e6d101bd06",
"name": "Note adhésive 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
976,
272
],
"parameters": {
"width": 200,
"height": 140,
"content": "**Step 5A**\nSend confirmation email if approved with appointment details"
},
"typeVersion": 1
},
{
"id": "c8f5c8fc-9fb0-481a-9070-5b4f285aa97e",
"name": "Note adhésive 6",
"type": "n8n-nodes-base.stickyNote",
"position": [
976,
768
],
"parameters": {
"width": 200,
"height": 140,
"content": "**Step 5B**\nSend reschedule email if rejected with link to book new time"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "bb882f11-e83f-4520-ae9a-c62690c0abf2",
"connections": {
"9242d614-bc41-4dd9-9b68-ff2938d128d4": {
"main": [
[
{
"node": "7331465f-d0d0-47a2-8451-5aab04607305",
"type": "main",
"index": 0
}
]
]
},
"7331465f-d0d0-47a2-8451-5aab04607305": {
"main": [
[
{
"node": "a751b5f3-ed2e-4a93-b061-539688520478",
"type": "main",
"index": 0
}
],
[
{
"node": "852c2a56-3558-44ac-9af9-1cd28bedb52b",
"type": "main",
"index": 0
}
]
]
},
"57b8a226-402b-42cf-b6bb-090195a862d9": {
"main": [
[
{
"node": "9f165f71-d038-49d0-8277-41c42a8ab0af",
"type": "main",
"index": 0
}
]
]
},
"9f165f71-d038-49d0-8277-41c42a8ab0af": {
"main": [
[
{
"node": "9242d614-bc41-4dd9-9b68-ff2938d128d4",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire - Gestion des tickets, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Chris Rudy
@chrisrudyDTC Marketing consultant with over 6 years of experience and over $25m in ad spend managed
Partager ce workflow