Connecter Swimlane à n8n
n8n se connecte à Swimlane dans les deux sens : Swimlane pousse les événements contact vers un webhook n8n, et n8n appelle l'API publique de Swimlane pour lire ou modifier des données. Rien à installer dans Swimlane : vous utilisez seulement Paramètres → Webhooks et Paramètres → API.
Avant de commencer
- Une instance n8n (cloud ou auto-hébergée) joignable depuis Internet.
- Un token API Swimlane si n8n doit lire ou écrire des données (voir Créer un token API et faire votre première requête).
Recevoir les événements Swimlane dans n8n
- Dans n8n, créez un workflow et ajoutez un nœud déclencheur Webhook.
- Réglez HTTP Method sur
POSTet copiez la Production URL. - Activez (publiez) le workflow pour que l'URL de production écoute.
- Dans Swimlane, ouvrez Paramètres → Webhooks, cliquez sur Ajouter un webhook, collez l'URL, cochez les événements voulus et cliquez sur Créer le webhook (détails dans Configurer des webhooks).
- Faites une vraie modification dans Swimlane, par exemple écrire une note sur un contact. En une minute environ, une nouvelle exécution apparaît dans l'historique du workflow n8n.
- Ouvrez cette exécution : le contenu envoyé par Swimlane se trouve sous
body(body.event,body.data.uuid,body.data.firstName…). Servez-vous-en pour configurer les nœuds suivants.
Juste après la création du webhook, Swimlane envoie une requête de test dont body.event vaut test. Ajoutez un nœud If qui arrête le workflow quand {{ $json.body.event }} est égal à test.
Appeler l'API Swimlane depuis n8n
- Ajoutez un nœud HTTP Request.
- Sous Authentication, choisissez Generic Credential Type, puis Header Auth.
- Créez l'identifiant avec le nom
Authorizationet la valeurBearer wpa_votre_token. - Renseignez l'URL, par exemple pour enrichir le contact qui a déclenché le webhook :
GET https://api.getswimlane.com/v1/contacts/{{ $json.body.data.uuid }}
La réponse ajoute le titre, la localisation, companyUuids, tagIds, listUuids et pipelineStageUuid à ce que le webhook vous a donné. Appelez GET /v1/companies/<uuid> pour obtenir le nom de l'entreprise.
Recette : transmettre les contacts tagués à un autre outil, à intervalle régulier
Poser un tag sur un contact ne déclenche pas de webhook. Pour agir sur les tags, interrogez l'API à intervalle régulier :
- Nœud Schedule Trigger : toutes les 15 minutes, par exemple.
- HTTP Request :
GET https://api.getswimlane.com/v1/contacts?tag_id=12&per_page=100, où12est l'identifiant d'un tag comme « À envoyer au CRM » (listez les identifiants avecGET /v1/tags). - Envoyez chaque contact vers votre CRM ou votre outil de prospection.
- HTTP Request :
POST https://api.getswimlane.com/v1/contacts/{{ $json.uuid }}/tagsavec un corps qui remplace le tag, pour que le contact ne reparte pas au passage suivant :
{ "tagIds": [18] }
Cet appel remplace tous les tags du contact. Partez de ses tagIds actuels, retirez 12, ajoutez votre tag « Envoyé » (18 ici) et envoyez la liste complète, sinon vous effacerez ses autres tags.
Bon à savoir
- Limite de débit : 100 requêtes API par minute par utilisateur Swimlane. Dans les boucles, ajoutez un nœud Wait ou traitez par lots pour éviter les
429. - Le token agit sur l'organisation que vous avez utilisée en dernier dans l'application Swimlane.
- Signature : n8n décode le corps avant que vos nœuds ne le voient. Si vous avez besoin d'une vérification stricte, contrôlez
X-Webhook-Signaturesur le corps brut comme expliqué dans Contenu des webhooks et vérification de la signature. Sinon, gardez l'URL de production confidentielle. - Les webhooks de chaque membre reçoivent les événements de toute l'organisation. Créez le webhook depuis un seul compte, sinon votre workflow s'exécutera plusieurs fois par modification.
- La carte n8n de Paramètres → Intégrations n'est pas nécessaire pour cette configuration.
Dépannage
- Rien n'arrive dans n8n : le workflow n'est pas actif, ou vous avez collé l'URL de test, qui n'écoute que pendant que l'éditeur attend un événement de test.
401dans le nœud HTTP Request : la valeur de l'identifiant doit êtreBearersuivi du token, avec l'espace.
