Automatisation pour l'équipe RH du traitement des candidatures de formulaire à Telegram

Avancé

Ceci est unHRworkflow d'automatisation du domainecontenant 18 nœuds.Utilise principalement des nœuds comme If, Set, Code, Merge, DateTime. Automatisation du traitement des candidatures d'emploi du formulaire vers Telegram pour l'équipe RH

Prérequis
  • Token Bot Telegram
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "74a3eb1d9183863c3f38b013b35f7a0a47154b35bd27ba9a21ba134094100e42",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "6b22551a-df2d-44e2-a3d3-8f90c5b9187e",
      "name": "À la soumission du formulaire",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -400,
        -240
      ],
      "webhookId": "b613885c-ca57-490e-a562-976fe3a487f6",
      "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 – **Can increase interview chances</span>",
              "fieldType": "html"
            },
            {
              "fieldType": "file",
              "fieldLabel": "Resume"
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Additional Information – **Can persuade HR to invite you for an interview"
            }
          ]
        },
        "formDescription": "Join our team."
      },
      "typeVersion": 2.2
    },
    {
      "id": "ac5c2a8f-fc22-4ec0-8b0c-4aca47d205ae",
      "name": "Si CV disponible",
      "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": "Modifier les champs",
      "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 – **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 et heure",
      "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": "Fusionner",
      "type": "n8n-nodes-base.merge",
      "position": [
        420,
        -500
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "aa4f6279-3b64-479e-b9ed-26582065cd9d",
      "name": "Envoyer un CV",
      "type": "n8n-nodes-base.telegram",
      "position": [
        920,
        -340
      ],
      "parameters": {
        "chatId": "your-chat-id",
        "operation": "sendDocument",
        "binaryData": true,
        "additionalFields": {
          "caption": "={{ $json['Name'] }}|{{ $json['Age'] }}|{{ $json['Education Level'] }}\n☎️ [{{ $json['WhatsApp Number'] }}](https://wa.me/6{{ $json['WhatsApp Number'] }})\n💼 {{ $json['Position Applied'] }} → Current: {{ $json['Current Occupation'] }}\n📅 {{ $json['Earliest Start Date'] }}\n💰 {{ $json['Expected Salary'] }}\n·\nNote: “{{ $json['Additional Information'] }}”",
          "parse_mode": "MarkdownV2"
        },
        "binaryPropertyName": "Resume"
      },
      "credentials": {
        "telegramApi": {
          "id": "prZwnwXgVHS6Lwgd",
          "name": "@mal_notis_bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c369c256-d5d2-4c6a-9d26-540c1b61772a",
      "name": "Envoyer des informations",
      "type": "n8n-nodes-base.telegram",
      "position": [
        920,
        -115
      ],
      "parameters": {
        "text": "={{ $json['Name'] }}|{{ $json['Age'] }}|{{ $json['Education Level'] }}\n☎️ [{{ $json['WhatsApp Number'] }}](https://wa.me/6{{ $json['WhatsApp Number'] }})\n💼 {{ $json['Position Applied'] }} → Current: {{ $json['Current Occupation'] }}\n📅 {{ $json['Earliest Start Date'] }}\n💰 {{ $json['Expected Salary'] }}\n·\nNote: “{{ $json['Additional Information'] }}”",
        "chatId": "your-chat-id",
        "additionalFields": {
          "parse_mode": "MarkdownV2",
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "prZwnwXgVHS6Lwgd",
          "name": "@mal_notis_bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1634ef3c-a55a-4f64-9645-5e0a21396a26",
      "name": "Aucune opération, ne rien faire",
      "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": "Note d'aperçu",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        -560
      ],
      "parameters": {
        "color": 7,
        "width": 600,
        "height": 260,
        "content": "🔶 **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—does nothing."
      },
      "typeVersion": 1
    },
    {
      "id": "2c84d179-82af-41ec-b795-ba382aacd473",
      "name": "Note de déclencheur de formulaire",
      "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": "Note de normalisation téléphone",
      "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": "Note de formatage de date",
      "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": "Note de mappage des champs",
      "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": "Note de branchement",
      "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": "Note de fusion",
      "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": "Note d'envoi de CV",
      "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": "Note d'envoi d'informations",
      "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
    }
  ],
  "pinData": {
    "On form submission": [
      {
        "Age": 25,
        "Name": "PUA JIA Wen",
        "Resume": [
          {
            "size": 31747,
            "filename": "Professional Minimalist CV Resume.pdf",
            "mimetype": "application/pdf"
          }
        ],
        "formMode": "production",
        "banner-top": "<img src=\"https://nocobase.maomaochia.com/storage/uploads/Welcome%20to%20Maomao%20Chia-izugwj.png\" width=\"100%\" />",
        "submittedAt": "2025-07-05T11:38:29.118+08:00",
        "Expected Salary": 2500,
        "WhatsApp Number": 183677119,
        "Position Applied": [
          "Course Consultant"
        ],
        "Current Occupation": "Real Estate Loan Company",
        "Earliest Start Date": "2025-08-01",
        "Education Level / Degree": "Diploma",
        "Additional Information – **Can persuade HR to invite you for an interview": ""
      }
    ]
  },
  "connections": {
    "5404267c-d6b1-4338-8436-78e33ce7f8b1": {
      "main": [
        [
          {
            "node": "f5ea7973-e865-4a61-af54-f94a69f3d975",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "98fcf3cd-4c52-40cb-aa87-b94a41b5e970": {
      "main": [
        [
          {
            "node": "aa4f6279-3b64-479e-b9ed-26582065cd9d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f5ea7973-e865-4a61-af54-f94a69f3d975": {
      "main": [
        [
          {
            "node": "98afc53b-7245-4538-aff3-5c8dc6e465fa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "98afc53b-7245-4538-aff3-5c8dc6e465fa": {
      "main": [
        [
          {
            "node": "ac5c2a8f-fc22-4ec0-8b0c-4aca47d205ae",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c369c256-d5d2-4c6a-9d26-540c1b61772a": {
      "main": [
        [
          {
            "node": "1634ef3c-a55a-4f64-9645-5e0a21396a26",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aa4f6279-3b64-479e-b9ed-26582065cd9d": {
      "main": [
        [
          {
            "node": "1634ef3c-a55a-4f64-9645-5e0a21396a26",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ac5c2a8f-fc22-4ec0-8b0c-4aca47d205ae": {
      "main": [
        [
          {
            "node": "98fcf3cd-4c52-40cb-aa87-b94a41b5e970",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "c369c256-d5d2-4c6a-9d26-540c1b61772a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6b22551a-df2d-44e2-a3d3-8f90c5b9187e": {
      "main": [
        [
          {
            "node": "98fcf3cd-4c52-40cb-aa87-b94a41b5e970",
            "type": "main",
            "index": 0
          },
          {
            "node": "5404267c-d6b1-4338-8436-78e33ce7f8b1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

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é ?

Avancé - Ressources Humaines

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.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds18
Catégorie1
Types de nœuds9
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34