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": "LAB1",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-496,
-208
],
"id": "c992bd28-a996-466a-b0f7-0b468ebe359c",
"name": "When clicking \u2018Execute workflow\u2019"
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "1FcJV3CPgLRKstIbLQeIV1t0cVOmrkXL3Pugr2SHTOWM",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Feuille 1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1FcJV3CPgLRKstIbLQeIV1t0cVOmrkXL3Pugr2SHTOWM/edit#gid=0"
},
"options": {
"dataLocationOnSheet": {
"values": {
"rangeDefinition": "specifyRangeA1",
"range": "A1:A"
}
},
"outputFormatting": {
"values": {
"general": "UNFORMATTED_VALUE",
"date": "FORMATTED_STRING"
}
}
}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [
-272,
-208
],
"id": "d38dc34d-3b87-4d10-b7b2-4b32d35321e8",
"name": "Get row(s) in sheet",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"sendTo": "={{$json[\"email\"]}}",
"subject": "Ma Newsletter",
"emailType": "text",
"message": "Bonjour \u00e0 tous, Ce mois-ci, nous avons plein de surprises pour vous ! \ud83c\udf1f De nouvelles fonctionnalit\u00e9s, des astuces pratiques et des offres exclusives vous attendent. Ne manquez pas nos conseils pour tirer le meilleur parti de nos services et rester \u00e0 jour avec toutes nos nouveaut\u00e9s. \ud83d\udca1 \u00c0 la une : Astuce du mois pour optimiser votre exp\u00e9rience Offre sp\u00e9ciale r\u00e9serv\u00e9e \u00e0 nos abonn\u00e9s \u00c9v\u00e9nement \u00e0 venir \u00e0 ne pas manquer Restez connect\u00e9s et profitez pleinement de ce que nous avons pr\u00e9par\u00e9 pour vous. Votre satisfaction est notre priorit\u00e9 ! \u00c0 tr\u00e8s vite, L\u2019\u00e9quipe",
"options": {}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
-48,
-208
],
"id": "f742712c-012c-4a30-9585-9b0180b681a9",
"name": "Send a message",
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
}
],
"connections": {
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "Get row(s) in sheet",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "86456fbe-636a-475c-a90c-5e0f4d7d79c4",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "KyDvt1Puta6LQr5l",
"tags": [
{
"name": "V1.0",
"id": "zs0961KwBvkU38GY",
"updatedAt": "2025-11-12T21:34:10.956Z",
"createdAt": "2025-11-11T21:34:10.956Z"
}
]
}
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.
gmailOAuth2googleSheetsOAuth2Api
About this workflow
LAB1. Uses manualTrigger, googleSheets, gmail. Event-driven trigger; 3 nodes.
Source: https://github.com/FRWD789/n8nNewsLettre/blob/037622d9671e103d83d1f537c6296cf87099d1a2/workflows/LAB1.json — original creator credit. Request a take-down →