Saltar al contenido

Acortador de URLs y Dashboard de Estadísticas

Crea URLs cortas únicas, las guarda en Airtable, redirige y cuenta clics, y muestra estadísticas de enlaces y hosts en un dashboard web. Gestiona creación, redirección y análisis.

AI 26 nodos 6 tipos conectado
Cargando workflow...

Nodos

Webhook Set If Crypto Airtable Function

Herramientas

Airtable

Detalles

ID
1093
Nodos
26
Conex.
Tipos
6

Pertenece a:

¿Qué hace este workflow?

Este workflow implementa un completo sistema de acortamiento de URLs que te permite generar enlaces cortos personalizados y gestionar su seguimiento de forma autónoma. Utiliza Airtable como base de datos para almacenar cada URL larga, su correspondiente URL corta única generada con criptografía, y registrar los metadatos esenciales para su análisis. Cada vez que una URL corta es visitada, el sistema redirige al usuario a la URL original y actualiza un contador de clics en Airtable. Además, se genera un dashboard interactivo donde puedes visualizar en tiempo real las estadísticas de uso de tus enlaces, incluyendo el número total de clics, los hosts más populares y el rendimiento general. Este sistema es ideal para equipos de marketing que necesitan monitorizar con precisión el impacto de sus campañas, o para empresas que desean tener un control granular sobre sus enlaces sin depender de servicios externos. Reduce la complejidad de la gestión de enlaces y proporciona insights valiosos para la toma de decisiones estratégicas.

¿Cómo funciona?

Este workflow usa 26 nodos conectados con 6 tipos diferentes: Webhook, Set, If, Crypto, Airtable y 1 más. La estructura está totalmente conectada — listo para importar.

¿Para quién es?

Diseñado para empresas de Agencias de Marketing, SaaS y equipos de Marketing & Email. Nivel avanzado — recomendado para usuarios experimentados. Alto valor de negocio: automatiza una tarea recurrente con impacto directo.

¿Lo quieres en tu empresa?

Lo implementamos por ti end-to-end: integración, deploy, mantenimiento y soporte. Consultoría B2B con Genai Sapiens.

Hablemos de tu proyecto

¿Quieres aprender a hacerlo?

Sprints de 30 días con companion IA + comunidad. Aprende n8n, automatización y agentes IA desde cero o nivel avanzado.

Ver formación Momentum

Workflows similares

\n"}]},"options":{},"keepOnlySet":true},"typeVersion":1},{"name":"Extract Id","type":"n8n-nodes-base.set","position":[650,330],"parameters":{"values":{"string":[{"name":"id","value":"={{$node[\"Webhook1\"].json[\"query\"][\"id\"]}}"}]},"options":{},"keepOnlySet":true},"typeVersion":1},{"name":"404 Error","type":"n8n-nodes-base.set","position":[1100,430],"parameters":{"values":{"string":[{"name":"result","value":"=Short URL not found"}]},"options":{},"keepOnlySet":true},"typeVersion":1},{"name":"Update clicks","type":"n8n-nodes-base.airtable","position":[1250,230],"parameters":{"id":"={{$node[\"Find by ID1\"].json[\"id\"]}}","table":"YOUR TABLE NAME","fields":["clicks"],"options":{},"operation":"update","application":"YOUR BASE ID","updateAllFields":false},"credentials":{"airtableApi":"Personal Airtable API creds"},"typeVersion":1,"alwaysOutputData":true},{"name":"Prepare clicks count","type":"n8n-nodes-base.set","position":[1100,230],"parameters":{"values":{"string":[{"name":"clicks","value":"={{$node[\"Find by ID1\"].json[\"fields\"][\"clicks\"]+1}}"}]},"options":{}},"typeVersion":1},{"name":"Webhook2","type":"n8n-nodes-base.webhook","position":[350,680],"webhookId":"8ac18eb4-bcc5-4817-b76d-d93094755ed2","parameters":{"path":"/dashboard","options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"text/html"}]},"responsePropertyName":"dashboard"},"responseMode":"lastNode"},"typeVersion":1},{"name":"Find by ID2","type":"n8n-nodes-base.airtable","position":[550,680],"parameters":{"table":"YOUR TABLE NAME","operation":"list","application":"YOUR BASE ID","additionalOptions":{}},"credentials":{"airtableApi":"Personal Airtable API creds"},"typeVersion":1,"alwaysOutputData":true},{"name":"Extract stats","type":"n8n-nodes-base.function","position":[750,680],"parameters":{"functionCode":"\nitems = items.filter(item=> Object.keys(item.json).length !==0).map(item => item.json.fields);\nif(items.length === 0){\nreturn [{\n json:{\n totalLinks:0,\n totalClick:0,\n totalHosts:0\n }\n}];\n}\nconst totalLinks = items.length;\nconst totalClick = items.map(item => item.clicks).reduce((acc,val) => acc+=val);\nconst hostsMap = new Map();\nconst hosts = items.map(item => item.host);\nhosts.forEach(host => { \n hostsMap.set(host,hostsMap.get(host)!==undefined?hostsMap.get(host)+1:1)\n});\n\nconst totalHosts = [...hostsMap.keys()].length;\n\nreturn [{\n json:{\n totalLinks,\n totalClick,\n totalHosts\n }\n}];"},"typeVersion":1},{"name":"Set dashboard","type":"n8n-nodes-base.set","position":[950,680],"parameters":{"values":{"string":[{"name":"dashboard","value":"=\n\n\n \n \n \n Dashboard\n\n\n\n\n \n
\n
\n \n n8 \n \n

Dashboard

\n
\n
\n
\n
Total Clicks
\n{{$node[\"Extract stats\"].json[\"totalClick\"]}}\n
\n
\n
Total Links
\n{{$node[\"Extract stats\"].json[\"totalLinks\"]}}\n
\n
\n
Total Hosts
\n{{$node[\"Extract stats\"].json[\"totalHosts\"]}}\n
\n
\n
\n\n"}]},"options":{},"keepOnlySet":true},"typeVersion":1}],"connections":{"Crypto":{"main":[[{"node":"Set ID,shortUrl,longUrl","type":"main","index":0}]]},"Webhook":{"main":[[{"node":"Check URL","type":"main","index":0}]]},"Airtable":{"main":[[{"node":"Set Output1","type":"main","index":0}]]},"Check Id":{"main":[[{"node":"Extract Id","type":"main","index":0}],[{"node":"Set Error output1","type":"main","index":0}]]},"Webhook1":{"main":[[{"node":"Check Id","type":"main","index":0}]]},"Webhook2":{"main":[[{"node":"Find by ID2","type":"main","index":0}]]},"Check URL":{"main":[[{"node":"Extract URL","type":"main","index":0}],[{"node":"Set Error output","type":"main","index":0}]]},"Set input":{"main":[[{"node":"Airtable","type":"main","index":0}]]},"Extract Id":{"main":[[{"node":"Find by ID1","type":"main","index":0}]]},"Find by ID":{"main":[[{"node":"Already exists ?","type":"main","index":0}]]},"Extract URL":{"main":[[{"node":"Crypto","type":"main","index":0}]]},"Find by ID1":{"main":[[{"node":"Already exists ?1","type":"main","index":0}]]},"Find by ID2":{"main":[[{"node":"Extract stats","type":"main","index":0}]]},"Extract stats":{"main":[[{"node":"Set dashboard","type":"main","index":0}]]},"Update clicks":{"main":[[{"node":"Set Output2","type":"main","index":0}]]},"Already exists ?":{"main":[[{"node":"Set Output","type":"main","index":0}],[{"node":"Set input","type":"main","index":0}]]},"Already exists ?1":{"main":[[{"node":"Prepare clicks count","type":"main","index":0}],[{"node":"404 Error","type":"main","index":0}]]},"Prepare clicks count":{"main":[[{"node":"Update clicks","type":"main","index":0}]]},"Set ID,shortUrl,longUrl":{"main":[[{"node":"Find by ID","type":"main","index":0}]]}}}