Creador de problemas de Jira desde Google Forms
Este es unMiscellaneous, Multimodal AIflujo de automatización del dominio deautomatización que contiene 9 nodos.Utiliza principalmente nodos como Code, Jira, Gmail, GoogleSheets, GoogleSheetsTrigger. Crear tickets de Jira desde formularios de Google, con actualizaciones de tablas y notificaciones por correo
- •Cuenta de Google y credenciales de API de Gmail
- •Credenciales de API de Google Sheets
Nodos utilizados (9)
Categoría
{
"id": "JmH0beZB5ZUgJGor",
"meta": {
"instanceId": "0430772da25f7bca29bf5ef2b251086a85fb4096503a6f781526d32befd038d6",
"templateCredsSetupCompleted": true
},
"name": "Google Forms → Jira Issue Creator",
"tags": [
{
"id": "MxIJ6vHorSEdfi3v",
"name": "google form",
"createdAt": "2025-08-18T07:16:22.720Z",
"updatedAt": "2025-08-18T07:16:22.720Z"
},
{
"id": "eAzNESqLUWwWMrE9",
"name": "gmail",
"createdAt": "2025-08-18T07:16:22.709Z",
"updatedAt": "2025-08-18T07:16:22.709Z"
},
{
"id": "EYNbAs3Q9sg9NksG",
"name": "Jira",
"createdAt": "2025-09-10T10:47:53.750Z",
"updatedAt": "2025-09-10T10:47:53.750Z"
},
{
"id": "7zEwLFClveXBEcdb",
"name": "google sheet",
"createdAt": "2025-08-18T07:16:22.756Z",
"updatedAt": "2025-08-18T07:16:22.756Z"
}
],
"nodes": [
{
"id": "8b90ebac-96e0-4b28-8024-edd6692f45c9",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-224,
-544
],
"parameters": {
"color": 3,
"width": 304,
"height": 176,
"content": "## Required\n\n\n• Google Form + response sheet\n• Jira Cloud project (API email + API token)\n• Gmail credential"
},
"typeVersion": 1
},
{
"id": "f7d9bcc1-d9c2-4844-ab4d-7d9d6b8610c3",
"name": "Activar al añadir fila",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
208,
-16
],
"parameters": {
"event": "rowAdded",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "",
"cachedResultUrl": "",
"cachedResultName": ""
},
"documentId": {
"__rl": true,
"mode": "url",
"value": ""
}
},
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"id": "3lAHCn7CBb11QTMg",
"name": "Google Sheets Trigger account 2"
}
},
"typeVersion": 1
},
{
"id": "5278e62a-2d6c-4aa5-8621-77e38efd9dc6",
"name": "Normalizar campos",
"type": "n8n-nodes-base.code",
"position": [
416,
-16
],
"parameters": {
"jsCode": "const priorityMap = {\n \"Highest\": \"1\",\n \"High\": \"2\", \n \"Medium\": \"3\",\n \"Low\": \"4\",\n \"Lowest\": \"5\"\n};\n\nconst sheetPriority = ($json['Priority'] || \"\").toString().trim();\nconst jiraPriority = priorityMap[sheetPriority] || \"3\";\nconst context = $json['Context'] || \"No context provided\";\nconst email = $json['Adresse e-mail'] || $json['Email'] || \"No email provided\";\n\n// keep data from the Google Sheets Trigger\nconst originalData = $input.first().json;\n\nreturn {\n ...originalData, // keep all data from trigger\n priority: jiraPriority,\n summary: context,\n description: `Email: ${email}\\nContext: ${context}\\nSteps to reproduce: ${$json['If bug, steps to reproduce'] || \"N/A\"}\\nAcceptance criteria: ${$json['Acceptance criteria'] || \"N/A\"}`\n};"
},
"typeVersion": 2
},
{
"id": "ce1d830b-85af-423f-81d1-36089e5ce1ae",
"name": "Crear incidencia Jira",
"type": "n8n-nodes-base.jira",
"position": [
672,
-16
],
"parameters": {
"project": {
"__rl": true,
"mode": "list",
"value": "10002",
"cachedResultName": "test2"
},
"summary": "={{$json.summary}}",
"issueType": {
"__rl": true,
"mode": "list",
"value": "10014",
"cachedResultName": "Story"
},
"additionalFields": {
"priority": {
"__rl": true,
"mode": "",
"value": "={{$json.priority}}"
},
"description": "={{$json.description}}"
}
},
"credentials": {
"jiraSoftwareCloudApi": {
"id": "lvsJXpsetLJRz9RJ",
"name": "Jira SW Cloud account 2"
}
},
"typeVersion": 1
},
{
"id": "387f2792-94a0-43ec-b358-a27229c50566",
"name": "Actualizar la hoja Google con información de incidencias",
"type": "n8n-nodes-base.googleSheets",
"position": [
976,
-16
],
"parameters": {
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": ""
},
"documentId": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "c1iXpA4kOmymMGXu",
"name": "Google Sheets account 2"
}
},
"typeVersion": 4.7
},
{
"id": "5cc9d8ed-dea5-44cc-bc5f-60fcc2a8b464",
"name": "Correo de notificación",
"type": "n8n-nodes-base.gmail",
"position": [
1296,
-16
],
"webhookId": "875c21fa-2282-4652-b4f7-7894df8d7769",
"parameters": {
"message": "=<p>Hello, you just received a new Jira ticket created.</p>\n\n<p><strong>Details:</strong></p>\n<ul>\n <li><strong>Reference:</strong> {{$node[\"Cretate Jira Ticket\"].json.key}}</li>\n <li><strong>URL:</strong> \n <a href=\"https://YOURSITE.atlassian.net/browse/{{$node['Cretate Jira Ticket'].json.key}}\">View ticket</a>\n </li>\n <li><strong>Title:</strong> {{\n (String($node[\"Normalize fields\"].json.summary ?? '')\n .replace(/\\s+/g,' ')\n .trim())\n || 'New issue from Google Form'\n }}</li>\n <li><strong>Priority:</strong> {{\n (()=>{\n const p = String($node[\"Normalize fields\"].json.priority ?? $json.priority ?? '').toLowerCase().trim();\n const map = { '1':'Highest','2':'High','3':'Medium','4':'Low','5':'Lowest',\n 'highest':'Highest','high':'High','medium':'Medium','low':'Low','lowest':'Lowest' };\n return map[p] || (p || 'Medium');\n })()\n }}</li>\n <li><strong>Status:</strong> {{ String($json.status ?? 'Created') }}</li>\n</ul>\n\n<p><strong>Requester:</strong></p>\n<ul>\n <li><strong>Email:</strong> {{\n $node[\"Trigger when row added\"].json[\"Adresse e-mail\"]\n || $node[\"Trigger when row added\"].json.Email\n || $node[\"Normalize fields\"].json[\"Adresse e-mail\"]\n || $node[\"Normalize fields\"].json.Email\n || ''\n }}</li>\n</ul>",
"options": {},
"subject": "You just received a new ticket"
},
"credentials": {
"gmailOAuth2": {
"id": "C7dkDtQlmRSRwBlz",
"name": "Gmail account 2"
}
},
"typeVersion": 2.1
},
{
"id": "d4016ada-d836-4ff2-9c57-882fda5d1e1f",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
112,
-544
],
"parameters": {
"width": 448,
"height": 704,
"content": "## 1) Trigger and Normalize \n\nTrigger: New row added to Google Sheets\n\nData Processing:\n- Clean and normalize all fields\n- summary: Single-spaced, trimmed text\n- description: Preserve paragraphs (trimmed)\n- reporter_email: Extract from \"email address\" or \"Email\" fields\n- Handle optional fields (like attachments)\n\nBest Practices:\nPerform all data cleaning here to avoid reprocessing later"
},
"typeVersion": 1
},
{
"id": "0df66792-90e8-4802-9e0b-33d46d8f9e0d",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
576,
-544
],
"parameters": {
"color": 5,
"width": 304,
"height": 704,
"content": "## 2) Create Jira ticket\n\nAction: Call Jira API to create ticket\n\nKey Parameters:\n- Project: \n- Type: Story\n- Priority: Mapped to Jira IDs (1-5)\n- Description: Standardized format\n\nOutputs:\n- Ticket key (e.g., TES-503)\n- Ticket URL\n- Creation status\n\nTips\nPriority: Map with the ID"
},
"typeVersion": 1
},
{
"id": "6379b494-5fd6-4795-8310-2b3b28dbf39a",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
896,
-544
],
"parameters": {
"color": 4,
"width": 576,
"height": 704,
"content": "## 3) Update the sheet and send Gmail notification\nAction: Update source row with Jira information\n\nUpdated Fields:\n- jira_key: Ticket reference\n- jira_url: Ticket link\n- status: \"Created\"\n- created_at: Creation timestamp\n\nMatching Mechanism:\n- Use \"Horodateur\" column for row matching\n\n\nAction: Send confirmation email\n\nRecipients: The person who needs to get the notification + eventually the requester\n\nContent:\n- Ticket reference and link\n- Title and priority\n- Creation status\n- Requester information"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "9e5ef1b9-61ec-41c0-bd9a-ae923ff3e582",
"connections": {
"5278e62a-2d6c-4aa5-8621-77e38efd9dc6": {
"main": [
[
{
"node": "ce1d830b-85af-423f-81d1-36089e5ce1ae",
"type": "main",
"index": 0
}
]
]
},
"ce1d830b-85af-423f-81d1-36089e5ce1ae": {
"main": [
[
{
"node": "387f2792-94a0-43ec-b358-a27229c50566",
"type": "main",
"index": 0
}
]
]
},
"f7d9bcc1-d9c2-4844-ab4d-7d9d6b8610c3": {
"main": [
[
{
"node": "5278e62a-2d6c-4aa5-8621-77e38efd9dc6",
"type": "main",
"index": 0
}
]
]
},
"387f2792-94a0-43ec-b358-a27229c50566": {
"main": [
[
{
"node": "5cc9d8ed-dea5-44cc-bc5f-60fcc2a8b464",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Varios, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Yassin Zehar
@yassinzeharDigital & IT Project Manager | Data-oriented | Agile certified (PSM I, PSPO I) | Paris
Compartir este flujo de trabajo