This workflow corresponds to n8n.io template #5713 — we link there as the canonical source.
This workflow follows the Form Trigger → Telegram 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": "6b22551a-df2d-44e2-a3d3-8f90c5b9187e",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-400,
-240
],
"parameters": {
"options": {
"path": "mmc-newjob",
"customCss": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\t--font-size-body: 12px;\n\t--font-size-label: 14px;\n\t--font-size-test-notice: 12px;\n\t--font-size-input: 14px;\n\t--font-size-header: 20px;\n\t--font-size-paragraph: 14px;\n\t--font-size-link: 12px;\n\t--font-size-error: 12px;\n\t--font-size-html-h1: 28px;\n\t--font-size-html-h2: 20px;\n\t--font-size-html-h3: 16px;\n\t--font-size-html-h4: 14px;\n\t--font-size-html-h5: 12px;\n\t--font-size-html-h6: 10px;\n\t--font-size-subheader: 14px;\n\n\t/* Colors */\n\t--color-background: #fbfcfe;\n\t--color-test-notice-text: #e6a23d;\n\t--color-test-notice-bg: #fefaf6;\n\t--color-test-notice-border: #f6dcb7;\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #dbdfe7;\n\t--color-card-shadow: rgba(99, 77, 255, 0.06);\n\t--color-link: #7e8186;\n\t--color-header: #525356;\n\t--color-label: #555555;\n\t--color-input-border: #dbdfe7;\n\t--color-input-text: #71747A;\n\t--color-focus-border: rgb(90, 76, 194);\n\t--color-submit-btn-bg: #ff6d5a;\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #ea1f30;\n\t--color-required: #ff6d5a;\n\t--color-clear-button-bg: #7e8186;\n\t--color-html-text: #555;\n\t--color-html-link: #ff6d5a;\n\t--color-header-subtext: #7e8186;\n\n\t/* Border Radii */\n\t--border-radius-card: 8px;\n\t--border-radius-input: 6px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 8px;\n\n\t/* Spacing */\n\t--padding-container-top: 24px;\n\t--padding-card: 24px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 16px;\n\t--padding-form-input: 12px;\n\t--card-padding: 24px;\n\t--card-margin-bottom: 16px;\n\n\t/* Dimensions */\n\t--container-width: 448px;\n\t--submit-btn-height: 48px;\n\t--checkbox-size: 18px;\n\n\t/* Others */\n\t--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.5;\n}\n\n.form-group.html {\n margin: 0 -24px;\n}\n.form-group.html span {\n margin: 24px;\n}",
"buttonLabel": "Submit",
"appendAttribution": false
},
"formTitle": "Career Application",
"formFields": {
"values": [
{
"html": "<img src=\"https://img.freepik.com/free-vector/stylish-welcome-lettering-banner-join-with-joy-happiness_1017-57675.jpg\" width=\"100%\"/>",
"fieldType": "html",
"elementName": "banner-top"
},
{
"fieldLabel": "Name",
"placeholder": "Lim Chee Xing",
"requiredField": true
},
{
"fieldType": "number",
"fieldLabel": "Age",
"placeholder": "23",
"requiredField": true
},
{
"fieldType": "number",
"fieldLabel": "WhatsApp Number",
"placeholder": "0182345678",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Education Level / Degree",
"fieldOptions": {
"values": [
{
"option": "Secondary School"
},
{
"option": "SPM"
},
{
"option": "Diploma"
},
{
"option": "Degree or Above"
}
]
},
"requiredField": true
},
{
"fieldLabel": "Current Occupation",
"placeholder": "Just graduated, looking for a job / Working at XX as XX / Staying at home to care for children",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Position Applied",
"multiselect": true,
"fieldOptions": {
"values": [
{
"option": "Facebook Marketing"
},
{
"option": "Xiaohongshu Marketing"
},
{
"option": "Course Consultant"
},
{
"option": "Any (see which position suits me)"
}
]
},
"requiredField": true
},
{
"fieldType": "date",
"fieldLabel": "Earliest Start Date",
"requiredField": true
},
{
"fieldType": "number",
"fieldLabel": "Expected Salary",
"placeholder": "1800",
"requiredField": true
},
{
"html": "<span>Resume \u2013 **Can increase interview chances</span>",
"fieldType": "html"
},
{
"fieldType": "file",
"fieldLabel": "Resume"
},
{
"fieldType": "textarea",
"fieldLabel": "Additional Information \u2013 **Can persuade HR to invite you for an interview"
}
]
},
"formDescription": "Join our team."
},
"typeVersion": 2.2
},
{
"id": "ac5c2a8f-fc22-4ec0-8b0c-4aca47d205ae",
"name": "If Have Resume",
"type": "n8n-nodes-base.if",
"position": [
420,
-260
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "72a76473-fd59-4d1d-aaa2-de6903c71d00",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.Resume }}",
"rightValue": ""
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "98afc53b-7245-4538-aff3-5c8dc6e465fa",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
200,
-100
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d44507d9-9881-4172-8dd2-fb3bada8a1aa",
"name": "banner-top",
"type": "string",
"value": "={{ $('On form submission').item.json['banner-top'] }}"
},
{
"id": "8747858f-42cb-4250-98d0-7c999ccefd25",
"name": "Name",
"type": "string",
"value": "={{ $('On form submission').item.json['Name'] }}"
},
{
"id": "9630466e-7485-433a-86da-c1346831d285",
"name": "Age",
"type": "number",
"value": "={{ $('On form submission').item.json['Age'] }}"
},
{
"id": "36acd3ae-3469-4447-9e48-9fd5d6971030",
"name": "WhatsApp Number",
"type": "string",
"value": "={{ $('Code').item.json['WhatsApp Number'] }}"
},
{
"id": "9bfb47c8-1087-4486-a53f-5aadc6f3001c",
"name": "Education Level",
"type": "string",
"value": "={{ $('On form submission').item.json['Education Level / Degree'] }}"
},
{
"id": "adec4971-49e3-435d-87b7-39b441dcb347",
"name": "Position Applied",
"type": "array",
"value": "={{ $('On form submission').item.json['Position Applied'] }}"
},
{
"id": "b506bea0-b898-4153-9e15-df35dce0ecae",
"name": "Earliest Start Date",
"type": "string",
"value": "={{ $json.formattedDate }}"
},
{
"id": "42d5814a-e226-4722-a4c3-0a4ec1355f2e",
"name": "Expected Salary",
"type": "number",
"value": "={{ $('On form submission').item.json['Expected Salary'] }}"
},
{
"id": "af6a3839-c8e4-46ae-98c6-3c81244c7ec3",
"name": "Resume",
"type": "string",
"value": "={{ $('On form submission').item.json.Resume }}"
},
{
"id": "9e9cf239-88a7-419f-bb80-e4849b15df14",
"name": "Additional Information",
"type": "string",
"value": "={{ $('On form submission').item.json['Additional Information \u2013 **Can persuade HR to invite you for an interview'] }}"
},
{
"id": "f64ce133-7376-46a4-b2b4-b1ff22828f24",
"name": "Current Occupation",
"type": "string",
"value": "={{ $('On form submission').item.json['Current Occupation'] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f5ea7973-e865-4a61-af54-f94a69f3d975",
"name": "Date & Time",
"type": "n8n-nodes-base.dateTime",
"position": [
0,
60
],
"parameters": {
"date": "={{ $json['Earliest Start Date'] }}",
"options": {},
"operation": "formatDate"
},
"typeVersion": 2
},
{
"id": "98fcf3cd-4c52-40cb-aa87-b94a41b5e970",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
420,
-500
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.2
},
{
"id": "aa4f6279-3b64-479e-b9ed-26582065cd9d",
"name": "Send a Resume",
"type": "n8n-nodes-base.telegram",
"position": [
920,
-340
],
"parameters": {
"chatId": "your-chat-id",
"operation": "sendDocument",
"binaryData": true,
"additionalFields": {
"caption": "={{ $json['Name'] }}\uff5c{{ $json['Age'] }}\uff5c{{ $json['Education Level'] }}\n\u260e\ufe0f [{{ $json['WhatsApp Number'] }}](https://wa.me/6{{ $json['WhatsApp Number'] }})\n\ud83d\udcbc {{ $json['Position Applied'] }} \u2192 Current: {{ $json['Current Occupation'] }}\n\ud83d\udcc5 {{ $json['Earliest Start Date'] }}\n\ud83d\udcb0 {{ $json['Expected Salary'] }}\n\u00b7\nNote: \u201c{{ $json['Additional Information'] }}\u201d",
"parse_mode": "MarkdownV2"
},
"binaryPropertyName": "Resume"
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "c369c256-d5d2-4c6a-9d26-540c1b61772a",
"name": "Send a Info",
"type": "n8n-nodes-base.telegram",
"position": [
920,
-115
],
"parameters": {
"text": "={{ $json['Name'] }}\uff5c{{ $json['Age'] }}\uff5c{{ $json['Education Level'] }}\n\u260e\ufe0f [{{ $json['WhatsApp Number'] }}](https://wa.me/6{{ $json['WhatsApp Number'] }})\n\ud83d\udcbc {{ $json['Position Applied'] }} \u2192 Current: {{ $json['Current Occupation'] }}\n\ud83d\udcc5 {{ $json['Earliest Start Date'] }}\n\ud83d\udcb0 {{ $json['Expected Salary'] }}\n\u00b7\nNote: \u201c{{ $json['Additional Information'] }}\u201d",
"chatId": "your-chat-id",
"additionalFields": {
"parse_mode": "MarkdownV2",
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "1634ef3c-a55a-4f64-9645-5e0a21396a26",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
1260,
-240
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5404267c-d6b1-4338-8436-78e33ce7f8b1",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
-180,
-80
],
"parameters": {
"jsCode": "return items.map(item => {\n let num = String(item.json['WhatsApp Number']);\n if (!num.startsWith('0')) {\n num = '0' + num;\n }\n item.json['WhatsApp Number'] = num;\n return item;\n});"
},
"typeVersion": 2
},
{
"id": "882c8ad4-90be-45ef-965b-7a80c3cdccb3",
"name": "Overview Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
-560
],
"parameters": {
"color": 7,
"width": 600,
"height": 260,
"content": "\ud83d\udd36 **Overview**: This workflow handles new career applications submitted via a web form.\n\n1. **On form submission**: Trigger when the form is submitted.\n2. **Code**: Normalize WhatsApp number formatting.\n3. **Date & Time**: Format the earliest start date.\n4. **Edit Fields**: Map and rename fields for consistency.\n5. **If Have Resume**: Branch based on whether a resume file was uploaded.\n6. **Merge**: Consolidate the data into a single item for output.\n7. **Send a Resume / Send a Info**: Send either the resume document or plain info to the HR Telegram group.\n8. **No Operation**: End of workflow\u2014does nothing."
},
"typeVersion": 1
},
{
"id": "2c84d179-82af-41ec-b795-ba382aacd473",
"name": "Form Trigger Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
-240
],
"parameters": {
"width": 400,
"height": 120,
"content": "**On form submission**: Receives all applicant fields. Uses a webhook to capture the form data."
},
"typeVersion": 1
},
{
"id": "260ea9b6-7523-41a6-ab5f-d247e6492509",
"name": "Normalize Phone Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-620,
-80
],
"parameters": {
"width": 360,
"height": 100,
"content": "**Code**: Ensures WhatsApp number starts with a leading zero if missing."
},
"typeVersion": 1
},
{
"id": "204a6f14-53d6-451f-9f21-ab4b53e79b56",
"name": "Format Date Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-420,
60
],
"parameters": {
"width": 360,
"height": 100,
"content": "**Date & Time**: Formats the \"Earliest Start Date\" into a standard date string."
},
"typeVersion": 1
},
{
"id": "01ab050b-5080-4062-bf7a-591e54f25e05",
"name": "Map Fields Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
200,
60
],
"parameters": {
"width": 400,
"height": 120,
"content": "**Edit Fields**: Renames and maps form fields to unified JSON properties for downstream use."
},
"typeVersion": 1
},
{
"id": "c841e2be-5a6a-4ba8-a8e8-aecefde46135",
"name": "Branch Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
420,
-120
],
"parameters": {
"width": 440,
"height": 140,
"content": "**If Have Resume**: Routes to two paths based on whether a resume file was provided:\n- **True**: Send document.\n- **False**: Send plain text info."
},
"typeVersion": 1
},
{
"id": "dc212dcc-73e4-467e-ba37-75ff101543db",
"name": "Merge Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
-500
],
"parameters": {
"width": 380,
"height": 100,
"content": "**Merge**: Combines the two branches back into a single item for final processing."
},
"typeVersion": 1
},
{
"id": "7c871645-9e7d-42af-9cb5-1c66e3dcd67a",
"name": "Send Resume Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1060,
-340
],
"parameters": {
"width": 400,
"height": 120,
"content": "**Send a Resume**: Sends the uploaded resume file to the HR Telegram group with applicant details in the caption."
},
"typeVersion": 1
},
{
"id": "28109d7d-6c31-49a4-b1bc-a520b7b6f97d",
"name": "Send Info Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1060,
-120
],
"parameters": {
"width": 400,
"height": 120,
"content": "**Send a Info**: Sends plain text applicant details when no resume file is present."
},
"typeVersion": 1
}
],
"connections": {
"Code": {
"main": [
[
{
"node": "Date & Time",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Send a Resume",
"type": "main",
"index": 0
}
]
]
},
"Date & Time": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "If Have Resume",
"type": "main",
"index": 0
}
]
]
},
"Send a Info": {
"main": [
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"Send a Resume": {
"main": [
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"If Have Resume": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
],
[
{
"node": "Send a Info",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
},
{
"node": "Code",
"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.
telegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow is perfect for HR teams, recruiters, or hiring managers who collect applicant information via a web form and want to automatically forward both candidate details and attached resumes into a dedicated Telegram channel or group. It streamlines manual email checks,…
Source: https://n8n.io/workflows/5713/ — 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.
Secure your n8n automations with this comprehensive template that automates periodic backups to Telegram for instant access while enabling flexible restores from Google Drive links or direct file uplo
Automatically transform any website URL into a complete portfolio entry with professional screenshots and AI-generated Upwork project descriptions. Freelancers building their Upwork/portfolio from pas
This n8n workflow enables a Virtual Try-On experience where users upload a dress image and the system: Combines it with a fashion model image Generates a realistic try-on image* Generates a fashion wa
Generate cinematic AI videos for social media, marketing campaigns, product demos, or creative projects. The workflow handles both text-to-video and image-to-video generation with automatic status pol
[CloudFly] Import Workflows, Credentials. Uses formTrigger, executeCommand, telegram, readWriteFile. Event-driven trigger; 18 nodes.