Passer au contenu principal

Guide d'intégration Make.com

Réponse rapide : utilisez l’éditeur de flux visuel de Make.com avec un déclencheur « Custom webhook ». Faites pointer le webhook_url de Surmado vers ce déclencheur, filtrez sur event = report.completed et report.product, puis diffusez vers Google Sheets, Slack, Airtable ou Notion. Pour des données plus détaillées, ajoutez un module HTTP qui appelle GET https://api.surmado.com/v1/reports/{{1.report.id}} avec une authentification Bearer.

Temps de lecture : 14 minutes


Prérequis

  1. Un compte Make.com (le forfait gratuit convient pour un faible volume ; Core à $9/mois pour un usage régulier)
  2. Une clé d’API Surmado (sur_live_...) : créez-la sur app.surmado.com → Settings → API Keys
  3. Une application de destination (Google Sheets, Slack, Airtable, Notion, etc.)

Forfaits Make requis

Forfait gratuit :

  • 1 000 opérations/mois
  • Limite de 2 scénarios
  • Suffisant pour 1 à 5 clients, à faible volume

Forfait Core ($9/mois) :

  • 10 000 opérations/mois
  • Scénarios illimités
  • Recommandé pour un usage régulier

Forfait Pro ($16/mois) :

  • 10 000 opérations + limites de données plus élevées
  • Variables personnalisées, exécution prioritaire
  • Pour les agences de 10 clients et plus

Le schéma d’intégration

  1. Déclencheur : « Webhooks → Custom webhook ». Make vous donne une URL unique.
  2. Configurez Surmado pour envoyer (POST) les rapports terminés à cette URL via webhook_url à la création d’un rapport.
  3. Filtrez sur event et report.product.
  4. Analysez le payload imbriqué avec la notation à points de Make (1.report.summary.presence_score).
  5. (Facultatif) Un module HTTP pour récupérer des données plus détaillées via l’API REST.
  6. Agissez : écrivez dans l’application de destination.

Exemple de payload

{
  "event": "report.completed",
  "timestamp": "2026-04-15T12:00:00+00:00",
  "report": {
    "id": "rpt_abc123xyz",
    "token": "SIG-2026-04-A1B2C",
    "product": "signal",
    "status": "completed",
    "tier": "basic",
    "data_url": "https://api.surmado.com/v1/reports/rpt_abc123xyz",
    "pdf_url": "https://api.surmado.com/v1/reports/view/VIEW_TOKEN",
    "summary": {
      "business_name": "Acme Coffee Roasters",
      "presence_score": 34.2,
      "authority_score": 42.7,
      "competitive_rank": 4,
      "top_competitor": "Blue Bottle"
    }
  }
}

Rapports Strategy ("product": "solutions") : ils n’ont pas d’objet summary, uniquement report.token et report.pdf_url.


Workflow 1 : AI Visibility vers Google Sheets

Modules du scénario

Module 1 : Webhooks: Custom webhook

  • Ajoutez un nouveau webhook. Make génère une URL du type https://hook.eu2.make.com/abc123def456.
  • Cliquez sur Determine data structure et lancez un exemple de rapport Surmado (voir l’exemple curl ci-dessous) pour que Make capture la structure du payload.

Créez l’exemple avec :

curl -X POST https://api.surmado.com/v1/reports/signal \
  -H "Authorization: Bearer sur_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "brand_slug": "acme_corp",
    "url": "https://acme.com",
    "email": "founder@acme.com",
    "industry": "B2B SaaS",
    "location": "United States",
    "persona": "Small business owners",
    "pain_points": "Losing track of customer conversations",
    "brand_details": "Simple CRM with email integration",
    "direct_competitors": "HubSpot, Pipedrive",
    "webhook_url": "https://hook.eu2.make.com/abc123def456"
  }'

Module 2 : Tools: Filter

Condition : 1.event Equal to report.completed AND 1.report.product Equal to signal.

Module 3 : Google Sheets: Add a Row

Associez les colonnes :

  • Date: {{1.timestamp}}
  • Token: {{1.report.token}}
  • Business: {{1.report.summary.business_name}}
  • Presence Score: {{1.report.summary.presence_score}}
  • Authority Score: {{1.report.summary.authority_score}}
  • Competitive Rank: {{1.report.summary.competitive_rank}}
  • Top Competitor: {{1.report.summary.top_competitor}}

Opérations utilisées par exécution : 3.


Workflow 2 : Site Audit avec alertes conditionnelles

Un seul scénario qui écrit chaque Site Audit dans Google Sheets et ne prévient Slack que si performance_score < 70.

Module 1 : Custom webhook (réutilisez celui du Workflow 1 ou créez-en un nouveau).

Module 2 : Filter : 1.event = report.completed AND 1.report.product = scan.

Module 3 : Google Sheets: Add a Row avec les champs du résumé Site Audit (seo_score, performance_score, accessibility_score, total_pages, critical_issues_count).

Module 4 : Router : séparez en deux chemins.

  • Chemin A (toujours) : se poursuit jusqu’à la fin.
  • Chemin B : Filter 1.report.summary.performance_score < 70 → Slack: Create a message.

Modèle de message Slack :

:warning: Performance regression on *{{1.report.summary.business_name}}*

Performance: {{1.report.summary.performance_score}} (below 70 threshold)
SEO: {{1.report.summary.seo_score}}
Accessibility: {{1.report.summary.accessibility_score}}
Critical issues: {{1.report.summary.critical_issues_count}}

View report: {{1.report.pdf_url}}

Opérations utilisées par exécution : 4 à 5 selon le chemin emprunté.


Workflow 3 : e-mail de synthèse Strategy

Les rapports Strategy n’incluent pas de résumé. Schéma :

  1. Déclencheur Custom webhook.
  2. Filter : 1.event = report.completed AND 1.report.product = solutions.
  3. Gmail / Email: Send an email avec le lien du PDF.

Corps de l’e-mail :

<p>Strategy report <code>{{1.report.token}}</code> has been delivered.</p>
<p><a href="{{1.report.pdf_url}}">View the full report (PDF)</a></p>

Opérations : 2.


Récupérer des données plus détaillées

Le résumé du webhook couvre la plupart des besoins. Pour des détails par plateforme (par exemple la présence ChatGPT et Claude) ou les problèmes page par page de Site Audit, ajoutez un module HTTP après le filtre :

Module : HTTP: Make a request

  • URL: https://api.surmado.com/v1/reports/{{1.report.id}}
  • Method: GET
  • Headers:
    • Name: Authorization
    • Value: Bearer sur_live_YOUR_API_KEY
  • Parse response: Yes

Les modules suivants peuvent alors référencer {{2.public_intelligence.data.platform_variance.chatgpt.presence_score}} ou {{2.public_intelligence.data.audit_data.enrichment.content_gaps.executive_summary}}.

Sécurité : enregistrez votre clé d’API dans une Connection ou une Custom Variable de Make plutôt que de la coller directement dans le module.


Schémas avancés

Router par produit

Utilisez un Router après le webhook pour distribuer selon 1.report.product :

  • Branche 1 : signal → workflow AI Visibility
  • Branche 2 : scan → workflow Site Audit
  • Branche 3 : solutions → synthèse Strategy

Une seule URL de webhook gère tous les types de rapport.

Configuration multi-clients pour agences

Utilisez 1.report.summary.business_name comme identifiant client dans une recherche Data store pour orienter chaque client vers son propre onglet de feuille ou sa propre page Notion. Créez une seule fois chaque client comme marque Surmado via POST /v1/brands/ensure, puis réutilisez le brand_slug pour chaque rapport.


Formats de token

Préfixes des Intelligence Token :

  • AI Visibility : SIG-YYYY-MM-XXXXX (regex : SIG-\d{4}-\d{2}-[A-Z0-9]{5})
  • Site Audit : SCN-YYYY-MM-XXXXX (regex : SCN-\d{4}-\d{2}-[A-Z0-9]{5})
  • Strategy : SOL-YYYY-MM-XXXXX (regex : SOL-\d{4}-\d{2}-[A-Z0-9]{5})

Les tokens n’expirent pas. Les URL de téléchargement signées de l’API REST sont valables environ 15 minutes ; le lien magique pdf_url des webhooks est valable environ 30 jours.


Dépannage

Le déclencheur webhook ne se déclenche pas : vérifiez que webhook_url a bien été indiqué dans l’appel de création du rapport, et essayez webhook.site comme URL de test pour vérifier que Surmado envoie les payloads.

Les champs apparaissent comme undefined dans les modules suivants : le rapport n’a peut-être pas renseigné ce champ (par exemple top_competitor vaut null pour les marques sans concurrent identifié), ou il s’agit d’un rapport Strategy, qui n’inclut pas de résumé. Vérifiez le produit avec 1.report.product.

Le module HTTP renvoie 401 : la clé d’API est absente ou mal formée. L’en-tête doit être Authorization: Bearer sur_live_... (y compris Bearer ).

Plus d’opérations utilisées que prévu : les Routers et les filtres comptent chacun pour une opération par exécution. Regroupez quand c’est possible : un seul module Google Sheets avec des valeurs associées coûte moins cher que plusieurs modules.


À lire aussi : Guide d’intégration de l’API | Données structurées et Intelligence Tokens | Intégration Zapier | Intégration n8n | Intégration Notion