This workflow corresponds to n8n.io template #8708 — we link there as the canonical source.
This workflow follows the Form Trigger → Gmail 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 →
{
"id": "7JkLmlhD2FQSofBZ",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Register volunteers in SinergiaCRM from form submissions and notify your team",
"tags": [
{
"id": "52gEP1RAeC1i5aJZ",
"name": "n8n Creator",
"createdAt": "2025-08-27T11:32:09.072Z",
"updatedAt": "2025-08-27T11:32:09.072Z"
}
],
"nodes": [
{
"id": "f4497f65-f971-4bf4-8f1d-ad3a2a88dcb6",
"name": "Find person by NIF",
"type": "n8n-nodes-sinergiacrm.sinergiaCrm",
"position": [
-1424,
-1824
],
"parameters": {
"module": "Contacts",
"options": {
"filters": {
"Filter": [
{
"field": "stic_identification_number_c",
"value": "={{ $json['Identification number (NIF)'] }}"
}
]
}
}
},
"credentials": {
"SinergiaCRMCredentials": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "a58f26ea-7dd1-4045-8bb0-e21bcfdd7bfe",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
-816,
-1664
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "551c98ad-18dc-4123-8e7e-65f88de385e1",
"name": "First name",
"type": "string",
"value": "={{ $json['First name'] }}"
},
{
"id": "1c06fe43-c098-44bf-8701-130fa167ed34",
"name": "Last name",
"type": "string",
"value": "={{ $json['Last name'] }}"
},
{
"id": "0abf9847-0966-4fa9-8852-decd2c4e1b73",
"name": "NIF",
"type": "string",
"value": "={{ $json['Identification number (NIF)'] }}"
},
{
"id": "e32878ed-45a5-490d-8e4f-e53118da990b",
"name": "Email",
"type": "string",
"value": "={{ $json.Email }}"
},
{
"id": "632788f1-5b4c-4113-ae73-ee16421820c5",
"name": "id",
"type": "string",
"value": "={{ $json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "6e9b3f59-8c48-4a00-9fbc-dd63383c3f7e",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1568,
-2192
],
"parameters": {
"width": 672,
"height": 768,
"content": "## SinergiaCRM Setup Requirements\n\nMake sure your SinergiaCRM instance includes the following modules:\n\n- Contacts \n- stic_Contacts_Relationships\n\nThis workflow uses OAuth authentication. To configure it:\n\n1. Set up OAuth credentials for your SinergiaCRM account. \n2. Adjust the `\"assigned_user_id\"` field if your instance requires a different user ID.\n\nImportant: \nEnsure the custom field `stic_identification_number_c` exists and is correctly configured in your CRM. This field is used to identify contacts by NIF.\n\n"
},
"typeVersion": 1
},
{
"id": "15f337b4-f3ee-4b67-9978-6ad62e4661d6",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-864,
-2192
],
"parameters": {
"width": 480,
"height": 768,
"content": "## Contact Existence Logic\n\nThis IF node determines the workflow path based on whether the contact already exists in SinergiaCRM:\n\n- \u2705 If the contact is found (matched by NIF), continue by creating a relationship. \n- \u274c If the contact is not found, create the contact first, then create the relationship.\n\nThe condition checks for a valid `id` returned from the \"Find person by NIF\" step.\n\nMatching is based on the custom field `stic_identification_number_c`.\n\n"
},
"typeVersion": 1
},
{
"id": "855ecd07-87c2-4abf-8f99-49c302043020",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
-1824
],
"parameters": {
"width": 448,
"height": 400,
"content": "## Troubleshooting Tips\n\n- Ensure the form submission includes all required fields: First name, Last name, Email, and NIF.\n- If no contact is created, double-check the NIF formatting and CRM field mapping.\n- Confirm that custom fields like `stic_identification_number_c` exist in your SinergiaCRM instance.\n- Check the execution logs for any API errors or authentication issues.\n- Verify that your OAuth credentials for SinergiaCRM are valid and up to date.\n"
},
"typeVersion": 1
},
{
"id": "bfb230ba-55a2-4842-96f9-e009956b0576",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2032,
-2656
],
"parameters": {
"width": 448,
"height": 1328,
"content": "Automatically register new volunteers in SinergiaCRM when they submit a form, creating or updating contacts and relationships, and sending a confirmation email to your team.\n\n### Who is this workflow for?\nThis workflow is ideal for nonprofit organizations that manage volunteer registrations and use **SinergiaCRM** as their CRM system. It helps automate the data entry process, ensuring volunteers are quickly added and tracked in the CRM.\n\n### What it does / How it works\n- Triggers when a new volunteer submits a form.\n- Checks if the volunteer already exists in SinergiaCRM (matched by NIF).\n- If found: adds a \u201cvolunteer\u201d relationship to the existing contact.\n- If not found: creates the contact and then adds the relationship.\n- Sends an email notification to your team with the volunteer\u2019s information.\n\n### Requirements\n- A working **SinergiaCRM** instance with the following modules enabled:\n - `Contacts`\n - `stic_Contacts_Relationships`\n- The field `stic_identification_number_c` must exist and be used to identify contacts by NIF.\n- Active Gmail (or other email provider) integration in n8n.\n- Valid OAuth credentials for SinergiaCRM and your email provider.\n\n### How to set up\n1. Connect your SinergiaCRM account using OAuth in the credentials section. \n2. Update the recipient email address in the Gmail node. \n3. Ensure your CRM contains the field `stic_identification_number_c`. \n4. Optionally adjust the value of `assigned_user_id` to reflect your CRM configuration.\n\n### How to customize the workflow\n- Modify the form fields in the **Form Trigger** node to match your registration form.\n- Customize the volunteer relationship parameters (e.g. type or assigned user).\n- Change the email content in the **Gmail** node to fit your organization\u2019s tone.\n- Replace Gmail with another email node (Outlook, SMTP, etc.) if needed.\n\n\ud83d\udccc Category: **CRM & Customer Management** \n\ud83d\udcd8 [Learn more about SinergiaCRM](https://sinergiacrm.org)\n"
},
"typeVersion": 1
},
{
"id": "2ef8983c-810c-47c4-801b-208f1f09c906",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-352,
-2192
],
"parameters": {
"width": 928,
"height": 768,
"content": "## Notification Step\n\nAfter the contact and relationship have been created, this workflow sends an email notification.\n\nYou can customize the \"Send email to the person in charge\" node to:\n\n- Change the recipient address\n- Modify the email subject or body\n- Include dynamic data (e.g. name, email, NIF)\n\nThis step helps keep your team informed when a new volunteer is registered.\n"
},
"typeVersion": 1
},
{
"id": "48cec7e3-2b4a-4167-856f-03032e4bba82",
"name": "Merge CRM IDs",
"type": "n8n-nodes-base.merge",
"position": [
-1120,
-1664
],
"parameters": {
"mode": "combine",
"options": {},
"advanced": true,
"joinMode": "enrichInput2",
"mergeByFields": {
"values": [
{
"field1": "attributes.stic_identification_number_c",
"field2": "NIF"
}
]
}
},
"typeVersion": 3.2
},
{
"id": "91348271-ccd9-4336-a7e2-4ff2086af152",
"name": "New Volunteer Form Submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-1872,
-1488
],
"parameters": {
"options": {},
"formTitle": "Volunteer registration",
"formFields": {
"values": [
{
"fieldLabel": "First name",
"requiredField": true
},
{
"fieldLabel": "Last name",
"requiredField": true
},
{
"fieldType": "email",
"fieldLabel": "Email",
"requiredField": true
},
{
"fieldLabel": "Identification number (NIF)",
"requiredField": true
}
]
},
"formDescription": "Volunteer registration form"
},
"typeVersion": 2.2
},
{
"id": "f6c578c7-9746-4f2c-ab8a-575dddb9b34c",
"name": "Check if Volunteer Already Exists in CRM (by NIF)",
"type": "n8n-nodes-base.if",
"position": [
-592,
-1664
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "92d7b7c4-2564-4eec-ab05-586340a484ec",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.id }}",
"rightValue": ""
}
]
}
},
"notesInFlow": false,
"typeVersion": 2.2
},
{
"id": "f4ac45c5-9e25-42c3-b8f7-8f761009bf31",
"name": "Create New Volunteer Contact in SinergiaCRM",
"type": "n8n-nodes-sinergiacrm.sinergiaCrm",
"position": [
-208,
-1600
],
"parameters": {
"data": "={\n \"first_name\": \"{{ $json['First name'] }}\",\n \"last_name\": \"{{ $json['Last name'] }}\",\n \"email1\": \"{{ $json.Email }}\",\n \"stic_identification_type_c\": \"nif\",\n \"stic_identification_number_c\": \"{{ $json.NIF }}\"\n}\n",
"module": "Contacts",
"operation": "create"
},
"credentials": {
"SinergiaCRMCredentials": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "e8291cc5-16b0-4961-b609-2334da77ae36",
"name": "Add Volunteer Relationship to Existing Contact",
"type": "n8n-nodes-sinergiacrm.sinergiaCrm",
"position": [
-208,
-1792
],
"parameters": {
"data": "={\n \"start_date\": \"{{ ('0' + new Date().getDate()).slice(-2) + '/' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '/' + new Date().getFullYear() }}\",\n \"relationship_type\": \"volunteer\",\n \"stic_contacts_relationships_contactscontacts_ida\": \"{{ $json.id }}\",\n \"assigned_user_id\": \"2\"\n}",
"module": "stic_Contacts_Relationships",
"operation": "create"
},
"credentials": {
"SinergiaCRMCredentials": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "b34f61cc-40de-46d8-bca7-5978b4824b37",
"name": "Add Volunteer Relationship to New Contact",
"type": "n8n-nodes-sinergiacrm.sinergiaCrm",
"position": [
16,
-1600
],
"parameters": {
"data": "={\n \"start_date\": \"{{ ('0' + new Date().getDate()).slice(-2) + '/' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '/' + new Date().getFullYear() }}\",\n \"relationship_type\": \"volunteer\",\n \"stic_contacts_relationships_contactscontacts_ida\": \"{{ $json.id }}\",\n \"assigned_user_id\": \"2\"\n}",
"module": "stic_Contacts_Relationships",
"operation": "create"
},
"credentials": {
"SinergiaCRMCredentials": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "e8e34724-d04b-4e18-a019-dd2b6c5da6b9",
"name": "Notify Team: New Volunteer Submitted",
"type": "n8n-nodes-base.gmail",
"position": [
304,
-1792
],
"parameters": {
"sendTo": "user@example.com",
"message": "=<html> <body style=\"font-family: Arial, sans-serif; line-height: 1.6;\"> <h2>\ud83c\udf89 New Volunteer Just Joined!</h2> <p>A new volunteer has submitted the registration form. Here are the details:</p> <ul> <li><strong>First Name:</strong> {{ $('New Volunteer Form Submission').item.json['First name'] }}</li> <li><strong>Last Name:</strong> {{ $('New Volunteer Form Submission').item.json['Last name'] }}</li> <li><strong>Email:</strong> {{ $('New Volunteer Form Submission').item.json.Email }}</li> <li><strong>NIF:</strong> {{ $('New Volunteer Form Submission').item.json['Identification number (NIF)'] }}</li> </ul> <p>The contact has been created and synced with SinergiaCRM.</p> <hr> <small>This is an automated notification from n8n.</small> </body> </html>",
"options": {},
"subject": "\ud83c\udf89 New Volunteer Just Joined!"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
}
],
"active": false,
"settings": {
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": "u9Tk2Qoss5uVjdTl",
"executionOrder": "v1",
"executionTimeout": 900,
"saveExecutionProgress": true,
"timeSavedPerExecution": 5
},
"versionId": "745b5ec7-22a7-434d-9d26-f36f4fd7f729",
"connections": {
"Edit Fields": {
"main": [
[
{
"node": "Check if Volunteer Already Exists in CRM (by NIF)",
"type": "main",
"index": 0
}
]
]
},
"Merge CRM IDs": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Find person by NIF": {
"main": [
[
{
"node": "Merge CRM IDs",
"type": "main",
"index": 0
}
]
]
},
"New Volunteer Form Submission": {
"main": [
[
{
"node": "Find person by NIF",
"type": "main",
"index": 0
},
{
"node": "Merge CRM IDs",
"type": "main",
"index": 1
}
]
]
},
"Add Volunteer Relationship to New Contact": {
"main": [
[
{
"node": "Notify Team: New Volunteer Submitted",
"type": "main",
"index": 0
}
]
]
},
"Create New Volunteer Contact in SinergiaCRM": {
"main": [
[
{
"node": "Add Volunteer Relationship to New Contact",
"type": "main",
"index": 0
}
]
]
},
"Add Volunteer Relationship to Existing Contact": {
"main": [
[
{
"node": "Notify Team: New Volunteer Submitted",
"type": "main",
"index": 0
}
]
]
},
"Check if Volunteer Already Exists in CRM (by NIF)": {
"main": [
[
{
"node": "Add Volunteer Relationship to Existing Contact",
"type": "main",
"index": 0
}
],
[
{
"node": "Create New Volunteer Contact in SinergiaCRM",
"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.
SinergiaCRMCredentialsgmailOAuth2
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automatically register new volunteers in SinergiaCRM when they submit a form, creating or updating contacts and relationships, and sending a confirmation email to your team.
Source: https://n8n.io/workflows/8708/ — 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.
Loan eligibility workflow. Uses formTrigger, googleSheets, gmail. Event-driven trigger; 53 nodes.
Echo Brand Voice Analysis (Processor) - TASK-074 Dec 10 Fix. Uses formTrigger, httpRequest, executeWorkflowTrigger, moveBinaryData. Event-driven trigger; 40 nodes.
Streamline your content pipeline by bridging Notion and Instagram with a professional "review-before-publish" safeguard. This workflow allows team members to submit content via a simple form, generate
🎥 Analyze YouTube Video for Summaries, Transcripts & Content + Google Gemini AI. Uses stickyNote, httpRequest, googleDrive, gmail. Event-driven trigger; 33 nodes.
This workflow automates event registrations and attendee communication from initial signup to event day. It captures form submissions, prevents duplicate entries, and stores registrations in Google Sh