Workflow n8n

Automatisation de la création de liens courts avec n8n

  • Ce workflow n8n permet d'automatiser la création de liens courts, facilitant ainsi le partage et la gestion des URL. Dans un contexte où la communication digitale est primordiale, ce type d'automatisation est essentiel pour les entreprises souhaitant optimiser leur présence en ligne. Grâce à ce workflow, les utilisateurs peuvent générer des liens courts en quelques clics, ce qui est particulièrement utile pour les équipes marketing et les professionnels des réseaux sociaux.
  • Le processus débute par un déclencheur manuel, permettant à l'utilisateur de tester le workflow à tout moment. Ensuite, plusieurs nœuds 'Sticky Note' sont utilisés pour fournir des instructions et des informations tout au long du processus. L'authentification API est ensuite configurée pour assurer une connexion sécurisée avec le service de raccourcissement d'URL. L'étape suivante consiste à créer un lien court via une requête HTTP, suivie d'une vérification pour déterminer si le slug est déjà disponible. Si c'est le cas, le lien est mis à jour, sinon un nouveau lien est créé. Enfin, le workflow enregistre l'URL raccourcie et termine le processus.
  • Les bénéfices de cette automatisation n8n incluent un gain de temps considérable et une réduction des erreurs manuelles, permettant aux équipes de se concentrer sur des tâches à plus forte valeur ajoutée. En intégrant ce workflow, les entreprises peuvent améliorer leur efficacité opérationnelle et renforcer leur stratégie de communication digitale.
Tags clés :automatisationAPIworkflown8nURL shortening
Catégorie: Manual · Tags: automatisation, API, workflow, n8n, URL shortening0

Workflow n8n URL shortening : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n URL shortening : détail des nœuds

  • Sticky Note1

    Ce noeud crée une note autocollante avec des paramètres de couleur, de largeur, de hauteur et de contenu.

  • When clicking "Test Workflow"

    Ce noeud déclenche manuellement le workflow lorsque l'utilisateur clique sur 'Test Workflow'.

  • Sticky Note4

    Ce noeud crée une note autocollante avec des paramètres de couleur, de largeur, de hauteur et de contenu.

  • Sticky Note5

    Ce noeud crée une note autocollante avec des paramètres de hauteur et de contenu.

  • Sticky Note6

    Ce noeud crée une note autocollante avec des paramètres de largeur, de hauteur et de contenu.

  • API Auth

    Ce noeud définit des champs et des options pour l'authentification API.

  • CREATE

    Ce noeud envoie une requête HTTP pour créer une ressource à l'URL spécifiée avec les options et le corps JSON fournis.

  • IF Slug available

    Ce noeud évalue une condition pour vérifier si un slug est disponible.

  • RETRIEVE

    Ce noeud envoie une requête HTTP pour récupérer des données à partir de l'URL spécifiée avec les options et les paramètres de requête.

  • UPDATE

    Ce noeud envoie une requête HTTP pour mettre à jour une ressource à l'URL spécifiée avec les options et le corps JSON fournis.

  • Shortened URL

    Ce noeud définit des valeurs et des options pour une URL raccourcie.

  • Done

    Ce noeud définit des options pour marquer une tâche comme terminée.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "ReXF4z8ZKcEd6Kea",
  "meta": {
    "instanceId": "10e1a946d44026e16f5f1b336bb25f918a0e45738f9dee8024757614581d7d73"
  },
  "name": "dub.co URL Shortener",
  "tags": [],
  "nodes": [
    {
      "id": "63170148-b769-43b6-9a7a-02baa9f76b02",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1480,
        1100
      ],
      "parameters": {
        "color": 4,
        "width": 346.4519761795601,
        "height": 227.3959699655325,
        "content": "## Dub.co API Limits:\nDub’s API is capped at 10 requests per second per user."
      },
      "typeVersion": 1
    },
    {
      "id": "defd82ef-25a0-4aa4-8681-d352e5fe8275",
      "name": "When clicking \"Test Workflow\"",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        1231,
        560
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "fec7fb8a-3f88-4de9-8392-5c7929a712e7",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "disabled": true,
      "position": [
        1480,
        460
      ],
      "parameters": {
        "color": 4,
        "width": 826.4578951225271,
        "height": 605.7992490141105,
        "content": "## Dub.co API\n**Create** Link. [Based on their API docs](https://dub.co/docs/api-reference/endpoint/create-a-new-link)"
      },
      "typeVersion": 1
    },
    {
      "id": "8c87aad8-519c-491b-b272-f21dfd5b069f",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1171,
        460
      ],
      "parameters": {
        "height": 870.5323777622334,
        "content": "## Control Stack"
      },
      "typeVersion": 1
    },
    {
      "id": "a6cfe224-95d9-47d6-a900-667eed065264",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        486,
        460
      ],
      "parameters": {
        "width": 655.6800599837106,
        "height": 462.29577922809585,
        "content": "# README\n\n## Dub.co API Workflow Configuration\n| Required | Input Field           | Description                                      |\n|----------|-----------------------|--------------------------------------------------|\n|✓| **`Dub API Key`**     | _API Key for Dub.co integration._                 |\n|✓| **`Long URL`**               | _The long URL to be shortened._                    |\n| | **`Custom Slug`**           | _Slug is the path of shortened URL - default is random 7 characters._               |\n|✓| **`Project Slug`**                  | _Enter Your Dub project slug, The slug for the project to create links for. E.g. for app.dub.co/acme, the project slug is 'acme'._                   |\n| | **`Custom Domain`** | _Custom domain linked to Dub.co._                 |\n\n\n\n\n\n\n\nYou'll need to add the details listed above in the \"API Auth\" node by clicking on it and filling the fields ==>"
      },
      "typeVersion": 1
    },
    {
      "id": "f3164150-9730-4d20-9aef-9ae7f84e73fc",
      "name": "API Auth",
      "type": "n8n-nodes-base.set",
      "position": [
        1240,
        820
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "Dub API Key",
              "stringValue": "=<Required: Get your Dub API Key from https://app.dub.co/settings/tokens>"
            },
            {
              "name": "Long URL",
              "stringValue": "https://n8n.io"
            },
            {
              "name": "Custom Slug",
              "stringValue": "=<Optional: Slug is the path of shortened URL - default is random 7 characters>"
            },
            {
              "name": "Project Slug",
              "stringValue": "=<Required: Enter Your Dub project slug, The slug for the project to create links for. E.g. for app.dub.co/acme, the project slug is 'acme'.>"
            },
            {
              "name": "Custom Domain",
              "stringValue": "=<Optional: The domain of the short link. If not provided, the primary domain for the project will be used (or dub.sh if the project has no domains)>"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "a2279ab1-6550-43ef-a41d-c24c669bb2b6",
      "name": "CREATE",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Create Link",
      "position": [
        1540,
        560
      ],
      "parameters": {
        "url": "https://api.dub.co/links",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 10,
              "batchInterval": 60000
            }
          },
          "redirect": {
            "redirect": {}
          },
          "response": {
            "response": {
              "neverError": true,
              "fullResponse": true
            }
          },
          "allowUnauthorizedCerts": true
        },
        "jsonBody": "={\n{{ $ifEmpty(`\"domain\": \"${$json[\"Custom Domain\"] || \"undefined\"}\",`, \"\").replace('\"domain\": \"<Optional: The domain of the short link. If not provided, the primary domain for the project will be used (or dub.sh if the project has no domains)>\",', \"\").replace('\"domain\": \"undefined\",', \"\") }}\n{{ $ifEmpty(`\"key\": \"${$json[\"Custom Slug\"] || \"undefined\"}\",`, \"\").replace('\"key\": \"<Optional: Slug is the path of shortened URL - default is random 7 characters>\",', \"\").replace('\"key\": \"undefined\",', \"\") }}\n  \"url\": \"{{ $json[\"Long URL\"] }}\",\n  \"comments\": \"Updated using N8N.io workflow: {{$workflow.name}}\"\n}",
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "projectSlug",
              "value": "={{ $json[\"Project Slug\"] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $json['Dub API Key'] }}"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.1,
      "alwaysOutputData": true
    },
    {
      "id": "970d062f-9206-4ec6-acdd-3fc1cc87db69",
      "name": "IF Slug available",
      "type": "n8n-nodes-base.if",
      "position": [
        1760,
        560
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.statusCode }}",
              "value2": "200",
              "operation": "regex"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d25eedfd-95a7-4c17-8a76-1cdfae6670d1",
      "name": "RETRIEVE",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Retrieve the link id",
      "position": [
        1540,
        840
      ],
      "parameters": {
        "url": "=https://api.dub.co/links/info",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 10,
              "batchInterval": 60000
            }
          },
          "redirect": {
            "redirect": {}
          },
          "response": {
            "response": {
              "neverError": true,
              "fullResponse": true
            }
          },
          "allowUnauthorizedCerts": true
        },
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "projectSlug",
              "value": "={{ $('API Auth').item.json[\"Project Slug\"] }}"
            },
            {
              "name": "key",
              "value": "={{ $('API Auth').item.json[\"Custom Slug\"] }}"
            },
            {
              "name": "domain",
              "value": "={{ $('API Auth').item.json[\"Custom Domain\"] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('API Auth').item.json[\"Dub API Key\"] }}"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.1,
      "alwaysOutputData": true
    },
    {
      "id": "18bf5187-422c-486e-84c4-c2f79855ba25",
      "name": "UPDATE",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Update Link",
      "position": [
        1780,
        840
      ],
      "parameters": {
        "url": "=https://api.dub.co/links/{{ $json.body.id }}",
        "method": "PUT",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 10,
              "batchInterval": 60000
            }
          },
          "redirect": {
            "redirect": {}
          },
          "response": {
            "response": {
              "neverError": true,
              "fullResponse": true
            }
          },
          "allowUnauthorizedCerts": true
        },
        "jsonBody": "={\n    {{ $ifEmpty(`\"domain\": \"${$('API Auth').item.json[\"Custom Domain\"] || \"undefined\"}\",`, \"\").replace('\"domain\": \"<Optional: The domain of the short link. If not provided, the primary domain for the project will be used (or dub.sh if the project has no domains)>\",', \"\").replace('\"domain\": \"undefined\",', \"\") }}\n{{ $ifEmpty(`\"key\": \"${$('API Auth').item.json[\"Custom Slug\"] || \"undefined\"}\",`, \"\").replace('\"key\": \"<Optional: Slug is the path of shortened URL - default is random 7 characters>\",', \"\").replace('\"key\": \"undefined\",', \"\") }}\n\n  \"url\": \"{{ $('API Auth').item.json[\"Long URL\"] }}\",\n  \"comments\": \"Updated using N8N.io workflow: {{$workflow.name}}\"\n}",
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "projectSlug",
              "value": "={{ $('API Auth').item.json[\"Project Slug\"] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('API Auth').item.json[\"Dub API Key\"] }}"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.1,
      "alwaysOutputData": true
    },
    {
      "id": "c16dc19b-f807-4784-a323-5d790cebe718",
      "name": "Shortened URL",
      "type": "n8n-nodes-base.set",
      "position": [
        2120,
        840
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "Shortened URL",
              "value": "={{ $json.body.shortLink }}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 2
    },
    {
      "id": "44d31a47-dd84-4b07-a606-2da99a73cad1",
      "name": "Done",
      "type": "n8n-nodes-base.set",
      "position": [
        1240,
        1060
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "3b5edd9c-e373-4dc1-95d0-b320beb47020",
  "connections": {
    "CREATE": {
      "main": [
        [
          {
            "node": "IF Slug available",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "UPDATE": {
      "main": [
        [
          {
            "node": "Shortened URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API Auth": {
      "main": [
        [
          {
            "node": "CREATE",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RETRIEVE": {
      "main": [
        [
          {
            "node": "UPDATE",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Shortened URL": {
      "main": [
        [
          {
            "node": "Done",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF Slug available": {
      "main": [
        [
          {
            "node": "Shortened URL",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "RETRIEVE",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \"Test Workflow\"": {
      "main": [
        [
          {
            "node": "API Auth",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n URL shortening : pour qui est ce workflow ?

Ce workflow s'adresse aux équipes marketing, aux professionnels des réseaux sociaux et aux entreprises souhaitant optimiser leur gestion des liens. Il est conçu pour les utilisateurs ayant un niveau technique intermédiaire, cherchant à automatiser des tâches répétitives et à améliorer leur efficacité.

Workflow n8n URL shortening : problème résolu

Ce workflow résout le problème de la gestion manuelle des liens longs, qui peut être chronophage et source d'erreurs. En automatisant le processus de création de liens courts, il élimine les frustrations liées à la saisie manuelle et réduit le risque d'erreurs. Les utilisateurs bénéficient d'une solution rapide et efficace pour partager des URL, améliorant ainsi leur communication digitale.

Workflow n8n URL shortening : étapes du workflow

Étape 1 : Le workflow est déclenché manuellement par l'utilisateur.

  • Étape 1 : Des nœuds 'Sticky Note' fournissent des instructions tout au long du processus.
  • Étape 2 : L'authentification API est configurée pour sécuriser la connexion.
  • Étape 3 : Une requête HTTP est envoyée pour créer un lien court.
  • Étape 4 : Une vérification est effectuée pour voir si le slug est disponible.
  • Étape 5 : Si le slug existe, le lien est mis à jour, sinon un nouveau lien est créé.
  • Étape 6 : L'URL raccourcie est enregistrée et le workflow se termine.

Workflow n8n URL shortening : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL de l'API de raccourcissement d'URL dans le nœud 'CREATE'. Assurez-vous d'ajuster les paramètres d'authentification dans le nœud 'API Auth' selon vos besoins. Vous pouvez également adapter les messages dans les nœuds 'Sticky Note' pour fournir des instructions spécifiques à votre équipe. Enfin, il est possible d'ajouter d'autres nœuds pour intégrer ce workflow avec d'autres outils ou services que vous utilisez.