Documentation API Meetlane - v1.0
L'API Meetlane permet d'accéder aux fonctionnalités de la plateforme d'automatisation commerciale.
Introduction
L'API Meetlane permet d'accéder aux fonctionnalités de la plateforme d'automatisation commerciale. Cette API utilise une authentification par token et retourne des données au format JSON.
Format des Réponses :
Toutes les réponses de l'API suivent un format standardisé incluant un indicateur de succès.
Rate Limiting :
L'API est limitée à 100 requêtes par minute par utilisateur pour garantir la stabilité du service.
Limitations importantes :
Les agents en pause (status: paused) peuvent être consultés via l'API mais aucune action d'écriture n'est autorisée. Ces actions retourneront une erreur HTTP 403 avec le message "Agent paused".
Les agents annulés (status: cancelled) peuvent être consultés via l'API mais aucune action d'écriture n'est autorisée (ajout de contacts, validation d'emails/courriers, etc.). Ces actions retourneront une erreur HTTP 403 avec le message "Agent cancelled".
Terminologie et compatibilité :
Meetlane utilise le terme "agent" dans toute son API pour désigner un agent commercial IA.
Par compatibilité technique, l'alias campaign_filter est également accepté mais agent_filter est recommandé.
Si les deux paramètres sont fournis, agent_filter est prioritaire.
Authentification
L'API utilise l'authentification par clé API. Vous devez créer une clé API depuis votre espace utilisateur, et l'utiliser dans vos requêtes d'une des façons suivantes.
- Header Authorization :
Authorization: Bearer YOUR_API_KEY
- Paramètre URL :
?api_key=YOUR_API_KEY
Pour créer une clé API, rendez-vous sur votre espace puis dans la section "API", créez votre clé, et copiez la (elle ne sera affichée qu'une fois). Gardez votre clé API confidentielle et ne la partagez jamais publiquement.
Serveur MCP (Model Context Protocol)
Branchez votre compte Meetlane à n'importe quel client compatible MCP (claude.ai, Claude Desktop, Cursor, Claude Code) pour interagir conversationnellement avec vos agents, emails, prospects (leads) et actions LinkedIn. Le serveur est accessible sur mcp.meetlane.ai avec votre token API habituel.
Authentification :
Le token est le même que pour l'API REST : générez-le depuis votre espace utilisateur, section « API ». Deux façons de le fournir :
- Header
Authorization: Bearer <votre-token>(recommandé)
- Paramètre d'URL
?api_key=<votre-token>- pour les clients qui ne permettent pas de configurer de headers
Configuration client (exemple Claude Desktop / Claude Code) :
Dans le fichier de configuration de votre client (mcpServers), ajoutez une entrée nommée meetlane avec :
type:http
url:https://mcp.meetlane.ai/mcp
headers:Authorization: Bearer sk_votre_token...(votre token API généré depuis l'espace utilisateur)
Configuration claude.ai (connecteur personnalisé) :
Paramètres > Connecteurs > Ajouter un connecteur personnalisé, avec comme URL : https://mcp.meetlane.ai/mcp?api_key=sk_votre_token...
Limitations :
- Rate-limit 100 req/min partagé avec l'API REST.
- Token = accès complet (pas de scopes en MVP).
- Le token Meetlane n'est utilisable que sur mcp.meetlane.ai (et inversement pour Manuscry).
Outils disponibles (21) :
add_to_blocklist- Ajoute une entrée à la blocklist (email, domain, company, siren, address).
block_contact- Bloque un contact et annule ses contenus en attente.
get_account_info- Récupère les infos du compte.
get_agent_reflexes- Règles IA configurées pour un agent.
get_agent_stats- Statistiques d'un agent (period: 7d/30d/90d/365d).
get_linkedin_weekly_stats- Statistiques LinkedIn hebdomadaires.
list_agents- Liste les agents IA.
list_blocklist- Liste la blocklist.
list_contacts- Liste les contacts avec filtres.
list_emails- Liste les emails avec filtres (category, agent, search).
list_emails_to_handle- Réponses IA en attente de validation.
list_emails_to_validate- Prises de contact en attente de validation.
list_linkedin_actions- Actions LinkedIn en attente.
mark_linkedin_action_failed- Marque une action LinkedIn comme échouée (avec raison facultative).
mark_linkedin_action_sent- Marque une action LinkedIn comme effectuée.
reject_email- Rejette une prise de contact.
remove_from_blocklist- Retire une entrée de la blocklist.
skip_email_response- Ignore une réponse IA.
update_linkedin_action_message- Modifie le message texte d'une action LinkedIn avant envoi.
validate_email- Approuve une prise de contact.
validate_email_response- Valide une réponse IA.
Informations utilisateur
Récupère les informations de l'utilisateur connecté et la liste de ses agents (hors brouillons).
https://meetlane.ai/api/api/me
Exemple de requête
Exemple de réponse
Agents retournés :
- Seuls les agents publiés sont retournés (status != draft)
- Les brouillons ne sont pas inclus dans les résultats
Champs des agents :
internal_note: Note personnelle pour identifier l'agent (nullable, 20 caractères max)
is_active: true si status = "active"
Statuts d'agent disponibles :
setup: Agent en cours de configuration
active: Agent actif et opérationnel
paused: Agent en pause
cancelled: Agent annulé (terminal)
pending_payment: Agent en attente de paiement
Liste des contacts
Récupère la liste des contacts avec pagination et filtres.
https://meetlane.ai/api/api/contacts
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| page | integer | Non | Numéro de page |
| per_page | integer | Non | Éléments par page (1-100) |
| search | string | Non | Recherche textuelle |
| status_filter | string | Non | Filtre par statut |
| source_filter | string | Non | Filtre par source |
| agent_filter | string | Non | ID hashé de l'agent (recommandé - alias campaign_filter accepté) |
| targeting_filter | string | Non | ID hashé du ciblage |
| sort_field | string | Non | Champ de tri |
| sort_direction | string | Non | Direction (asc/desc) |
| include_emails | boolean | Non | Inclure les emails |
| semantic_search | boolean | Non | Recherche par IA |
Exemple de requête
Exemple de réponse
Statuts disponibles :
enrich: Prospects (leads) en enrichissement
neutral: Prospects neutralisés (post-enrichissement sans match)
contact: Prospects enrichis, prêts pour génération
validation: En attente de validation
nurture: En nurturing actif
won: Convertis en clients (terminal positif)
lost: Perdus (terminal)
later: À recontacter
noanswer: Séquence terminée sans réponse
error: Erreur technique (transitoire)
block: Bloqué (terminal, RGPD/blocklist)
cancelled: Annulé
Sources disponibles :
linkedin_auto: Prospection LinkedIn automatique (ciblage)
linkedin_manual: Ajout manuel via URL LinkedIn
competitor: Ciblage concurrent (réacteurs LinkedIn)
smart_auto: Ciblage IA (Smart Targeting, si activé sur votre compte)
inbound_email: Prospect créé automatiquement depuis un email entrant sur votre boîte, sans correspondance avec un contact existant
manual: Ajout manuel (autres sources)
Champs additionnels :
relevance: Score de pertinence (entier 1-10, null tant que non scoré)
linkedin_url: URL du profil LinkedIn (nullable)
picture: URL de la photo de profil (nullable)
agent_targeting: Ciblage LinkedIn associé (nullable)
Propriétés de touchpoints :
has_touchpoint_email: Email envoyé au prospect (boolean)
has_touchpoint_email_answer: Prospect a répondu par email (boolean)
has_touchpoint_letter: Courrier livré au prospect (boolean)
has_touchpoint_linkedin: Invitation LinkedIn envoyée au prospect (boolean)
has_touchpoint_letter_flash: QR code flashé par le prospect (boolean)
has_returned_letter: Courrier retourné (NPAI/PND) (boolean)
Masquage pré-contact (plans Performance) : pour un agent facturé au modèle performance, contacts[].value et linkedin_url sont masqués tant qu'aucune preuve d'envoi n'existe sur le prospect (email, LinkedIn ou courrier). Les clés restent présentes, seules les valeurs sont remplacées. La recherche par fragment de coordonnée (search) ne matche jamais un prospect masqué ; la recherche par nom/société reste disponible. filters_applied.contacts_masked vaut true uniquement si votre compte a au moins un agent sur un plan performance.
Démarrer la prospection sur un contact LinkedIn
Lance la prospection automatique (emails + courriers selon votre agent) sur un contact identifié par son URL LinkedIn, en l'ajoutant à votre agent. Meetlane enrichit le profil, recherche l'email pro, puis démarre la séquence configurée. À utiliser pour brancher Meetlane à votre CRM, vos formulaires ou tout autre outil d'intégration. Compatible avec les agents en ciblage automatique comme en ajout manuel.
https://meetlane.ai/api/api/campaigns/{agent_id}/contacts
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| agent_id | string | Oui | ID hashé de l'agent |
Exemple de requête
Exemple de réponse
Compatible avec tous les agents Meetlane : Fonctionne avec les agents en ciblage automatique (linkedin_auto) et en ajout manuel (linkedin_manual).
Permet d'injecter des contacts supplémentaires dans un agent existant, même si celui-ci utilise un ciblage LinkedIn automatique.
Vérification préalable recommandée :
Utilisez GET /api/campaigns/{agent_id}/settings pour :
- Récupérer la liste exacte des champs requis selon votre configuration
- Comprendre quels champs sont utilisés dans vos emails/lettres
Champs obligatoires :
linkedin_url: URL complète du profil LinkedIn (format: https://www.linkedin.com/in/nom-prenom)
Champs optionnels :
identifier: Identifiant unique (auto-généré si vide)
ai_context: Contexte personnalisé complémentaire (recommandé)
- Variables personnalisées selon la configuration de votre agent
Champ ai_context - Utilisation et fonctionnement :
Le champ ai_context est optionnel mais fortement recommandé. Voici comment il fonctionne :
1. Contexte automatique extrait du profil LinkedIn :
Meetlane extrait automatiquement du profil LinkedIn :
- Poste actuel et entreprise
- Parcours professionnel et expériences
- Compétences et domaines d'expertise
- Formation et diplômes
2. Votre contexte personnalisé (ai_context) :
Utilisez ce champ pour ajouter des informations spécifiques qui ne sont PAS sur le profil LinkedIn :
- Contexte de rencontre (événement, conférence, recommandation)
- Intérêts exprimés lors d'échanges directs
- Besoins spécifiques identifiés
- Notes de qualification commerciale
3. Fusion intelligente :
Votre contexte personnalisé sera fusionné avec les informations extraites du profil.
L'IA utilisera les deux sources pour générer des emails ultra-personnalisés.
Exemple concret :
Profil LinkedIn : "Directeur Marketing chez TechCorp, 10 ans d'expérience en SaaS B2B"
Votre ai_context : "Rencontré au salon BigData Paris, cherche solution d'automatisation"
Résultat : Email personnalisé mentionnant son poste + le contexte de rencontre + ses besoins
Gestion des crédits Meetlane :
Les contacts manuels LinkedIn consomment vos crédits contacts (leads_available_meetlane).
- Si crédits disponibles : Traitement immédiat (dans les 30 min)
- Si crédits insuffisants : Contacts ajoutés au sheet mais non traités
- Les contacts en attente seront traités automatiquement lors du prochain rechargement de crédits
Traitement asynchrone :
Le contact passe par plusieurs étapes automatiques :
- Ajout au sheet : Contact stocké avec vos informations (immédiat)
- Enrichissement LinkedIn : Extraction du profil toutes les 30 min via
all:leads-create-from-linkedin-manual-sheets
- Recherche d'adresse : Localisation de l'adresse postale si envoi de courrier configuré
- Création du prospect : Prospect enrichi créé avec toutes les informations
- Génération des messages : Emails/courriers personnalisés générés selon votre configuration
Le délai total entre l'ajout via API et la prise de contact peut être de 30 minutes maximum.
Ajout en masse :
Pour ajouter plusieurs contacts :
- Effectuez une requête par contact
- Rate limit : 100 requêtes par minute par utilisateur
- Utilisez des identifiers uniques pour éviter les doublons
Champs dynamiques :
Si votre agent utilise des variables {custom} dans les emails/lettres, vous devez inclure les champs correspondants.
Utilisez GET /api/campaigns/{agent_id}/settings pour connaître tous les champs requis.
Gestion des erreurs de validation :
En cas d'erreur de validation (HTTP 422), la réponse inclut trois clés pour faciliter le debugging :
validation_errors: objet avec chaque champ en erreur et son message explicite (ex.linkedin_url: "L'URL LinkedIn est obligatoire pour les campagnes LinkedIn")
missing_fields: tableau des champs obligatoires manquants
invalid_fields: tableau des champs présents mais invalides (format incorrect, etc.)
Bloquer un contact
Bloque un contact et tous ses doublons, annule les contenus en attente et ajoute à la blocklist.
https://meetlane.ai/api/api/contacts/{leadId}/block
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| leadId | string | Oui | ID hashé du contact |
Exemple de requête
Exemple de réponse
Actions automatiques :
- Le contact et tous ses doublons (même email) sont bloqués
- L'email est ajouté à votre blocklist
- L'adresse postale est ajoutée à la blocklist si disponible
- Tous les emails en attente (réponses et followups) sont annulés
- Toutes les lettres en attente (avant génération) sont annulées
Retour :
duplicates_blocked: Nombre de doublons bloqués en plus du contact principal
emails_cancelled: Nombre d'emails annulés
letters_cancelled: Nombre de lettres annulées
Statistiques d'un agent
Récupère les statistiques de performance d'un agent.
https://meetlane.ai/api/api/agents/{agentId}/stats
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| agentId | string | Oui | ID hashé de l'agent |
| period | string | Non | Période d'analyse (7d, 14d, 30d, 60d, 90d, 120d, 180d, 365d) |
Exemple de requête
Exemple de réponse
Endpoints disponibles:
/api/agents/{agentId}/stats(recommandé pour Meetlane)
/api/campaigns/{agentId}/stats(alias fonctionnel pour compatibilité)
Comptage des messages reçus :
receivedne compte que les réponses réelles de prospects : les messages automatiques (réponses d'absence, anti-spam, emails non attribués) sont exclus du compteur
Réflexes d'un agent
Récupère la liste des réflexes configurés pour un agent, avec leurs statistiques de déclenchement et les 5 dernières exécutions de chaque réflexe. Disponible sur les agents récents uniquement.
https://meetlane.ai/api/api/agents/{agentId}/reflexes
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| agentId | string | Oui | ID hashé de l'agent |
Exemple de requête
Exemple de réponse
Prérequis : Les réflexes ne sont disponibles que sur les agents récents. Les agents plus anciens retournent une erreur 400.
Les réflexes sont des comportements automatiques post-séquence qui analysent le contexte du contact et déclenchent un email personnalisé si la situation correspond.
Chaque réflexe inclut ses 5 dernières exécutions avec le nom du prospect, l'entreprise, l'analyse IA et la date.
Le champ is_protected indique un réflexe de base fourni avec l'agent : il ne peut pas être supprimé (il peut en revanche être mis en pause).
Liste des emails
Récupère les emails de tous vos agents.
https://meetlane.ai/api/api/emails
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| category | string | Non | Catégorie d'emails |
| page | integer | Non | Numéro de page |
| per_page | integer | Non | Éléments par page |
| search | string | Non | Recherche textuelle |
| semantic_search | boolean | Non | Recherche par IA |
| agent_filter | string | Non | ID hashé de l'agent (recommandé - alias campaign_filter accepté) |
Exemple de requête
Catégories disponibles :
received: Emails reçus
sent: Emails envoyés
to_handle: À traiter
interested: Prospects intéressés
not_interested: Non intéressés
neutral: Neutres
block: À bloquer
auto_reply: Réponses automatiques
antispam: Antispam
unattributed: Non attribués (reçus sans prospect associé)
Volume unattributed : lorsque la création automatique de leads entrants est activée sur votre compte, un email reçu d'un expéditeur inconnu humain devient un prospect inbound_email (voir GET /api/contacts) au lieu de rester unattributed. Cela ne concerne qu'une minorité des emails de cette catégorie : la majorité (antispam, réponses automatiques, bounces, expéditeur invalide) continue à l'alimenter.
Emails en attente de validation
Récupère la liste des emails de prise de contact en attente de validation.
https://meetlane.ai/api/api/emails/to-validate
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| page | integer | Non | Numéro de page |
| per_page | integer | Non | Éléments par page (1-100) |
| agent_filter | string | Non | ID hashé de l'agent (recommandé - alias campaign_filter accepté) |
Exemple de requête
Exemple de réponse
Masquage pré-contact (plans Performance) : pour un agent facturé au modèle performance, le champ email est masqué tant qu'aucune preuve d'envoi n'existe sur le prospect. La clé reste présente, seule la valeur est remplacée.
Réponses email à traiter
Récupère la liste des réponses email en attente de traitement.
https://meetlane.ai/api/api/emails/to-handle
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| page | integer | Non | Numéro de page |
| per_page | integer | Non | Éléments par page (1-100) |
| agent_filter | string | Non | ID hashé de l'agent (recommandé - alias campaign_filter accepté) |
Exemple de requête
Exemple de réponse
Valider une prise de contact
Valide une prise de contact email pour envoi automatique.
https://meetlane.ai/api/api/emails/validate/{leadId}
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| leadId | string | Oui | ID hashé du prospect |
| custom_messages | object | Non | Messages personnalisés |
Exemple de requête
Exemple de réponse
Délai de carence :
Le prospect sera validé définitivement après 60 minutes.
Pendant ce délai, vous pouvez encore le refuser.
Personnalisation optionnelle :
Vous pouvez modifier les messages personnalisés en passant un objet custom_messages.
Refuser une prise de contact
Refuse une prise de contact email.
https://meetlane.ai/api/api/emails/reject/{leadId}
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| leadId | string | Oui | ID hashé du prospect |
Exemple de requête
Exemple de réponse
Délai de carence :
Le prospect sera supprimé définitivement après 60 minutes.
Pendant ce délai, vous pouvez encore le valider.
Valider une réponse email
Valide ou modifie une réponse email générée par l'IA pour envoi automatique.
https://meetlane.ai/api/api/emails/validate-response/{emailId}
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| emailId | string | Oui | ID hashé de l'email reçu |
| content | string | Non | Contenu personnalisé de la réponse (optionnel) |
| cc | Non | Email en copie pour transfert (optionnel). Pris en compte uniquement quand l'email est gagné (catégorie interested) ou le lead déjà converti (won), sinon ignoré (cc_added=false). Sans ce champ, le CC de transfert déjà préparé est conservé. |
Exemple de requête
Exemple de réponse
Paramètres optionnels :
- Si
contentn'est pas fourni, utilise la réponse IA existante
- Si
ccest fourni, le prospect est automatiquement marqué comme gagné (status: won), sauf s'il est déjà en statutlost,blockoucancelled(le CC est ajouté à l'email mais le statut du prospect ne change pas)
Statuts de réponse :
waiting: En attente d'envoi automatique
- La réponse sera envoyée par la commande
meetlane:emails-send-replies
Type de réponse :
ai_validated: Si la réponse IA est conservée
manual: Si le contenu a été modifié
Ignorer une réponse email
Ignore une réponse email générée par l'IA sans y répondre.
https://meetlane.ai/api/api/emails/skip-response/{emailId}
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| emailId | string | Oui | ID hashé de l'email reçu |
Exemple de requête
Exemple de réponse
Utilisation :
Marque l'email comme traité sans envoyer de réponse.
Utile pour les emails qui ne nécessitent pas de réponse (auto-reply, antispam, etc.).
Liste des courriers
Récupère les courriers de tous vos agents.
https://meetlane.ai/api/api/letters
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| category | string | Non | Catégorie de courriers |
| page | integer | Non | Numéro de page |
| per_page | integer | Non | Éléments par page (1-100) |
| search | string | Non | Recherche textuelle |
| agent_filter | string | Non | ID hashé de l'agent (recommandé - alias campaign_filter accepté) |
| lead_identifier | string | Non | Identifiant unique du contact (celui fourni lors de l'ajout via API ou l'interface) |
Exemple de requête
Exemple de réponse
Catégories disponibles :
to_validate: Courriers en attente de validation
validated: Courriers validés en attente d'envoi
rejected: Courriers refusés en attente de suppression
error: Courriers en erreur
insufficient_funds: Courriers en attente de crédits
in_preparation: Courriers en génération, impression ou attente d'envoi
transiting: Courriers en transit postal
delivered: Courriers délivrés
returned: Courriers retournés (NPAI/PND)
scanned: Courriers avec QR code flashé
not_scanned: Courriers avec QR code non flashé
Filtrage par identifiant :
Le paramètre lead_identifier permet de retrouver les courriers d'un contact spécifique en utilisant l'identifiant unique fourni lors de l'ajout (via API ou interface). Combiné avec agent_filter, il permet de retrouver précisément un courrier.
Statuts disponibles :
validating: En attente de validation utilisateur
generating: En cours de génération des visuels
printing: En attente d'impression
sending: En attente d'envoi
transiting: En transit
delivered: Livré
returned: Retourné (NPAI/PND)
cancelled: Annulé
error: Erreur technique
Masquage pré-contact (plans Performance) : pour un agent facturé au modèle performance, le bloc address est masqué tant qu'aucune preuve d'envoi n'existe sur le prospect destinataire. Les clés restent présentes, seules les valeurs sont remplacées.
Courriers en attente de validation
Récupère la liste des courriers en attente de validation.
https://meetlane.ai/api/api/letters/to-validate
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| page | integer | Non | Numéro de page |
| per_page | integer | Non | Éléments par page (1-100) |
| agent_filter | string | Non | ID hashé de l'agent (recommandé - alias campaign_filter accepté) |
Exemple de requête
Exemple de réponse
Masquage pré-contact (plans Performance) : pour un agent facturé au modèle performance, le bloc address est masqué tant qu'aucune preuve d'envoi n'existe sur le prospect destinataire. Les clés restent présentes, seules les valeurs sont remplacées.
Valider un courrier
Valide un courrier pour envoi automatique.
https://meetlane.ai/api/api/letters/validate/{letterId}
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| letterId | string | Oui | ID hashé du courrier |
| blocks | array | Non | Blocs de contenu personnalisés |
Exemple de requête
Exemple de réponse
Délai de carence :
Le courrier sera validé définitivement après 60 minutes.
Pendant ce délai, vous pouvez encore le refuser.
Personnalisation optionnelle :
Vous pouvez modifier les blocs de contenu en passant un tableau blocks.
Chaque bloc doit avoir un id et un content.
Refuser un courrier
Refuse un courrier.
https://meetlane.ai/api/api/letters/reject/{letterId}
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| letterId | string | Oui | ID hashé du courrier |
Exemple de requête
Exemple de réponse
Délai de carence :
Le courrier sera supprimé définitivement après 60 minutes.
Pendant ce délai, vous pouvez encore le valider.
Liste de blocage
Récupère la liste de blocage.
https://meetlane.ai/api/api/blocklist
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| type | string | Non | Type de blocage (email, domain, company, siren, address, all) |
| page | integer | Non | Numéro de page |
| per_page | integer | Non | Éléments par page |
Exemple de requête
Exemple de réponse
Types disponibles :
email: Adresse email exacte
domain: Nom de domaine
company: Nom d'entreprise (recherche approximative)
siren: Numéro SIREN (9 chiffres)
address: Identité complète (format: firstname_slug|lastname_slug|zip)
Note sur le type address :
Le type address utilise un format spécial pour bloquer une personne par son identité complète.
Format de la valeur : firstname_slug|lastname_slug|code_postal
Exemple : jean|dupont|75001
La slugification utilise Str::slug() avec locale 'fr' pour gérer les accents français.
Ajouter à la blocklist
Ajoute un élément à bloquer.
https://meetlane.ai/api/api/blocklist
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| type | string | Oui | Type (email, domain, company, siren, address) |
| value | string | Oui | Valeur à bloquer |
Exemple de requête
Exemple de réponse
Types supportés :
email: Adresse email complète (ex: spam@example.com)
domain: Nom de domaine (ex: competitor.com)
company: Nom d'entreprise (ex: Concurrent SARL)
siren: Numéro SIREN à 9 chiffres (ex: 123456789)
address: Identité complète au format firstname_slug|lastname_slug|zip (ex: jean|dupont|75001)
Validation automatique :
Le type est détecté automatiquement selon le format de la valeur.
Pour le type address, la valeur doit être pré-formatée avec les slugs.
Supprimer de la blocklist
Supprime un élément de la blocklist par ID ou par valeur.
https://meetlane.ai/api/api/blocklist
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| id | string | Non | ID hashé de l'élément à supprimer |
| value | string | Non | Valeur à débloquer (alternative à id) |
Exemple de requête
Exemple de réponse
Méthodes de suppression :
- Par ID : Utilisez le paramètre
idavec l'ID hashé récupéré depuis GET /api/blocklist
- Par valeur : Utilisez le paramètre
valueavec la valeur exacte
Note : Au moins un des deux paramètres (id ou value) doit être fourni. Si les deux sont fournis, id est prioritaire.
Historique des rendez-vous calendrier
Récupère l'historique des rendez-vous pris via la page de booking calendrier d'un agent.
https://meetlane.ai/api/api/agents/{agentId}/calendar-events
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| agentId | string | Oui | ID hashé de l'agent |
| page | integer | Non | Numéro de page |
| per_page | integer | Non | Éléments par page (1-50) |
Exemple de requête
Exemple de réponse
Endpoints disponibles :
/api/agents/{agentId}/calendar-events(recommandé pour Meetlane)
/api/campaigns/{campaignId}/calendar-events(alias fonctionnel pour compatibilité)
Modes de rendez-vous (meeting_mode) :
visio: Rendez-vous en visioconférence (mode par défaut). Si le calendrier de l'agent est synchronisé, un lien de visioconférence est généré automatiquement et remonte dansmeeting_url(null sinon).
phone: Le prospect demande à être appelé au numéro fourni
Les rendez-vous antérieurs à l'introduction du champ remontent visio.
Statuts possibles :
success: Événement créé avec succès dans Google Calendar
failed: Échec de création dans Google Calendar (événement sauvegardé localement)
calendar_disconnected: Calendrier Google non connecté (événement sauvegardé localement)
Important :
Cet historique est un log local des réservations effectuées via la page de booking.
Il n'est pas synchronisé avec Google Calendar et sert uniquement de journal d'audit.
Webhooks
Les webhooks permettent de recevoir des notifications en temps réel des événements de vos agents Meetlane.
Configuration : Interface Meetlane > Paramètres > Webhooks
Webhooks disponibles :
- Filtrage par agent configurable
- Stockés dans votre compte utilisateur
- Configuration d'URL par type d'événement
Format général des webhooks : Chaque webhook est envoyé en POST avec le format JSON suivant :
Format général
Masquage pré-contact (plans Performance) : sur les événements lead_ready_for_validation, letter_ready_for_validation, billable_lead_detected, linkedin_invitation_created et linkedin_invitation_ready, le champ email ou linkedin_url du prospect est masqué tant qu'aucune preuve d'envoi n'existe sur aucun canal et que l'agent est facturé au modèle performance. La clé reste toujours présente dans le payload, seule sa valeur change.
Événements emails disponibles :
1. lead_ready_for_validation - Prospect (lead) prêt à être validé
Déclenché lorsqu'un nouveau contact est prêt pour une prise de contact email.
Payload lead_ready_for_validation
2. new_email_received - Nouvel email important reçu
Déclenché lorsqu'un email nécessitant attention est reçu d'un prospect.
Payload new_email_received
3. opportunity_transferred - Opportunité commerciale détectée
Déclenché lorsque Meetlane détecte une opportunité commerciale à transférer.
Payload opportunity_transferred
Identité du prospect : firstname, lastname, job et company sont nullables - un prospect né d'un email entrant peut ne pas avoir d'identité résolue. Seul email est toujours présent : utilisez-le comme clé de rattachement dans votre CRM.
4. lead_lost - Prospect perdu
Déclenché lorsque Meetlane détecte qu'un prospect n'est pas intéressé.
Payload lead_lost
5. lead_blocked - Prospect bloqué automatiquement
Déclenché lorsqu'un prospect est bloqué automatiquement (antispam, blocklist).
⚠️ Le champ email est masqué tant que le prospect n'a jamais été contacté sur aucun canal, sur les agents facturés au résultat - même politique que lead_ready_for_validation et billable_lead_detected. Chaque lettre et chiffre est remplacé par « x », la ponctuation est conservée. L'adresse réelle apparaît dès qu'un envoi a eu lieu.
Payload lead_blocked
6. reply_sent - Réponse envoyée à un prospect
Déclenché lorsqu'une réponse (auto ou manuelle) est envoyée à un prospect.
Payload reply_sent
7. auto_reply_prepared - Réponse automatique préparée
Déclenché lorsque Meetlane prépare une réponse automatique en attente de validation.
Payload auto_reply_prepared
Événements courriers disponibles :
8. letter_ready_for_validation - Courrier prêt à être validé
Déclenché lorsqu'un courrier a été généré et attend validation.
Payload letter_ready_for_validation
9. letter_sent - Courrier envoyé au service postal
Déclenché lorsqu'un courrier validé est envoyé à l'impression et à la poste.
Payload letter_sent
10. letter_delivered - Courrier livré au destinataire
Déclenché lorsque le courrier est confirmé livré par La Poste.
Payload letter_delivered
11. letter_returned - Courrier retourné (NPAI/PND)
Déclenché lorsqu'un courrier est retourné par La Poste (adresse incorrecte).
Payload letter_returned
12. qr_code_scanned - QR code flashé sur un courrier
Déclenché lorsqu'un destinataire scanne le QR code sur un courrier.
Payload qr_code_scanned
13. new_calendar_event - Nouveau rendez-vous calendrier
Déclenché lorsqu'un rendez-vous est pris via la page de réservation calendrier.
Payload new_calendar_event
Statuts possibles :
success: Événement créé avec succès dans Google Calendarfailed: Échec de création dans Google Calendar (événement sauvegardé localement)calendar_disconnected: Calendrier Google non connecté (événement sauvegardé localement)
Modes de rendez-vous (meeting_mode) :
visio: Rendez-vous en visioconférence (mode par défaut). Si le calendrier de l'agent est synchronisé, un lien de visioconférence est généré automatiquement et remonte dansmeeting_url(null sinon).phone: Le prospect demande à être appelé au numéro fourni
Identité du contact : le formulaire de réservation ne collecte plus de nom - contact_firstname et contact_lastname proviennent du lead correspondant quand il est identifié, null sinon.
Événements LinkedIn disponibles :
14. linkedin_invitation_created - Invitation LinkedIn créée
Déclenché lorsqu'une invitation LinkedIn est créée et en attente d'envoi.
Payload linkedin_invitation_created
15. linkedin_invitation_ready - Invitation LinkedIn prête
Déclenché lorsque le message d'une invitation LinkedIn a été généré par l'IA et est prêt à être envoyé.
Payload linkedin_invitation_ready
16. linkedin_invitation_sent - Invitation LinkedIn envoyée
Déclenché lorsqu'une invitation LinkedIn a été envoyée à un prospect.
Payload linkedin_invitation_sent
Événements de facturation au résultat (plan Performance) :
17. billable_lead_detected - Lead qualifié
Déclenché lorsqu'un lead est qualifié sur un agent au plan Performance (facturation au résultat, lead unique à 99 € HT). amount_ht est le montant HT associé, status le statut de l'événement dans le registre de facturation (validated à la qualification, puis under_contest, refunded, billed ou offered) et qualified_at la date de qualification. Le lead peut être contesté depuis votre espace Meetlane : sous 7 jours à compter de la qualification s'il s'agit d'un concurrent ou d'un client existant, entre 14 et 21 jours s'il est resté injoignable. La preuve (réponse du prospect mot pour mot) est consultable depuis votre espace Meetlane.
Payload billable_lead_detected
Actions LinkedIn
Récupérez la liste des invitations LinkedIn générées par vos agents et marquez-les comme envoyées. Ces endpoints sont conçus pour être utilisés par l'extension Chrome Meetlane ou tout outil d'automatisation externe.
https://meetlane.ai/api/linkedin/actions
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| agent_filter | string | Non | ID hashé de l'agent pour filtrer les actions. |
| status | string | Non | Statut des actions à récupérer. Valeurs : pending, generating, ready, sent, failed. Par défaut : ready. |
| limit | integer | Non | Nombre maximum d'actions à retourner (1-100). Par défaut : 25. |
Exemple de requête
Marquer une action LinkedIn comme envoyée
Marque une action LinkedIn (invitation) comme envoyée. Utilisé après l'envoi effectif de l'invitation sur LinkedIn, que ce soit manuellement ou via l'extension Chrome.
https://meetlane.ai/api/linkedin/actions/{actionId}/sent
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| actionId | string | Oui | ID hashé de l'action LinkedIn à marquer comme envoyée (dans l'URL). |
| metadata | object | Non | Métadonnées optionnelles (ex: {"sent_via": "chrome_extension", "version": "1.0"}). |
Exemple de requête
Modifier le message d'une action LinkedIn
Met à jour le message d'invitation d'une action LinkedIn. Utilisable uniquement si l'action est en statut `pending` ou `ready` (non encore envoyée).
https://meetlane.ai/api/linkedin/actions/{actionId}/message
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| actionId | string | Oui | ID hashé de l'action LinkedIn (dans l'URL). |
| message | string | Non | Nouveau message d'invitation (200 caractères max). Envoyer `null` ou une chaîne vide pour supprimer le message (invitation sans note). |
Exemple de requête
Marquer une action LinkedIn comme échouée
Marque une action LinkedIn comme échouée. Utilisé lorsque l'envoi de l'invitation a échoué (erreur LinkedIn, profil introuvable, etc.). Seules les actions en statut `ready` peuvent être marquées comme échouées.
https://meetlane.ai/api/linkedin/actions/{actionId}/failed
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| actionId | string | Oui | ID hashé de l'action LinkedIn à marquer comme échouée (dans l'URL). |
| metadata | object | Non | Métadonnées optionnelles (ex: {"sent_via": "chrome_extension", "error_reason": "Profile not found"}). |
Exemple de requête
Statistiques LinkedIn hebdomadaires
Récupère les statistiques d'invitations LinkedIn des 7 derniers jours pour tous les agents avec LinkedIn activé. Conçu pour l'extension Chrome Meetlane.
https://meetlane.ai/api/linkedin/weekly-stats