Zum Hauptinhalt springen

Notion-Integrationsleitfaden

Kurzantwort: Es gibt keine direkte Integration zwischen Surmado und Notion. Verbinden Sie beide mit Zapier, Make, n8n oder einem kleinen eigenen Skript. Fangen Sie den Surmado Webhook report.completed auf und rufen Sie dann die Aktion “Create database item” von Notion mit den Feldern aus report.summary auf.

Lesezeit: 10 Minuten


Ablauf

  1. Trigger: Surmado sendet eine report.completed-Payload an einen Webhook-Endpunkt (Zapier Catch Hook, Make Custom Webhook, n8n Webhook oder Ihren eigenen Server).
  2. report.summary lesen für die aufbereiteten Kennzahlen. Für AI Visibility sind das presence_score, authority_score, competitive_rank usw. Für Site Audit sind es seo_score, performance_score, accessibility_score, critical_issues_count und das Objekt quick_wins. Strategy-Berichte enthalten keine Zusammenfassung: Verwenden Sie nur report.pdf_url und report.token.
  3. Ein Notion-Datenbankelement erstellen, dessen Eigenschaftswerte aus der Payload stammen.
  4. (Optional) Anreichern mit einem REST-API-Aufruf GET /v1/reports/{report_id}, wenn Sie tiefere Daten wie public_intelligence.data.platform_variance oder public_intelligence.data.audit_data.enrichment brauchen.

Richten Sie den Webhook-Weg ein, indem Sie beim Erstellen eines Surmado Berichts webhook_url übergeben:

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://your-webhook-endpoint.example.com/surmado"
  }'

Empfohlene Datenbankschemas

AI Visibility Berichte

Eigenschaft Typ Payload-Feld
Title Title report.summary.business_name
Token Text report.token
Report ID Text report.id
Presence Score Number report.summary.presence_score
Authority Score Number report.summary.authority_score
Competitive Rank Number report.summary.competitive_rank
Top Competitor Text report.summary.top_competitor
Report Date Date timestamp
PDF URL report.pdf_url
Status Select abgeleitet aus presence_score, siehe unten

Eine Status-Auswahl lässt sich mit einer Lookup-Tabelle berechnen:

  • presence_score < 30 → At Risk
  • 30 <= presence_score < 60 → Needs Work
  • presence_score >= 60 → Leading

Site Audit Berichte

Eigenschaft Typ Payload-Feld
Title Title report.summary.business_name oder URL
Token Text report.token
Report ID Text report.id
SEO Score Number report.summary.seo_score
Performance Score Number report.summary.performance_score
Accessibility Score Number report.summary.accessibility_score
Total Pages Number report.summary.total_pages
Critical Issues Number report.summary.critical_issues_count
Report Date Date timestamp
PDF URL report.pdf_url

Strategy Berichte

Strategy-Berichte liefern über den Webhook nur den Token und die PDF-URL. Ein schlankes Schema:

Eigenschaft Typ Payload-Feld
Title Title abgeleitet (Marke + Datum)
Token Text report.token
Report ID Text report.id
Report Date Date timestamp
PDF URL report.pdf_url

Einrichtung mit Zapier (empfohlen)

Die Notion-Integration von Zapier hat die Aktion “Create Database Item”, die sich sauber auf die Webhook-Payload abbilden lässt.

  1. Erstellen Sie einen Zap: Webhooks by Zapier → Catch Hook (kopieren Sie die angezeigte URL).
  2. Konfigurieren Sie einen Surmado Bericht mit dieser URL als webhook_url.
  3. Filter: event = report.completed AND report__product = signal (oder scan).
  4. Aktion: Notion → Create Database Item. Ordnen Sie die Felder anhand der Webhook-Ausgabe zu (Zapier macht verschachtelte Schlüssel mit doppeltem Unterstrich flach: report__summary__presence_score).

Vollständige Anleitung mit Beispiel-Zaps: Zapier-Integrationsleitfaden.


Eigenes Skript (ohne Zapier)

Wenn Sie Code bevorzugen, betreiben Sie einen kleinen Server, der den Surmado Webhook annimmt und die Notion API direkt aufruft.

Node.js-Beispiel

const express = require('express');
const { Client } = require('@notionhq/client');

const notion = new Client({ auth: process.env.NOTION_API_KEY });
const DATABASE_ID = process.env.NOTION_DATABASE_ID;

const app = express();
app.use(express.json());

app.post('/surmado-webhook', async (req, res) => {
  const { event, report, timestamp } = req.body;
  if (event !== 'report.completed' || report.product !== 'signal') {
    return res.status(200).end();
  }

  await notion.pages.create({
    parent: { database_id: DATABASE_ID },
    properties: {
      'Name': { title: [{ text: { content: report.summary.business_name || report.token } }] },
      'Token': { rich_text: [{ text: { content: report.token } }] },
      'Report ID': { rich_text: [{ text: { content: report.id } }] },
      'Presence Score': { number: report.summary.presence_score ?? null },
      'Authority Score': { number: report.summary.authority_score ?? null },
      'Competitive Rank': { number: report.summary.competitive_rank ?? null },
      'Top Competitor': { rich_text: [{ text: { content: report.summary.top_competitor || '' } }] },
      'Report Date': { date: { start: timestamp } },
      'PDF': { url: report.pdf_url || null }
    }
  });

  res.status(200).end();
});

app.listen(process.env.PORT || 3000);

Prüfen Sie die Webhook-Signatur, bevor Sie der Payload vertrauen. Den HMAC-SHA256-Algorithmus finden Sie im API-Integrationsleitfaden.


Notion-Seiten mit tieferen Daten anreichern

Die Webhook-Zusammenfassung deckt die meisten Anforderungen ab. Wenn Sie plattformspezifische Aufschlüsselungen möchten (z. B. ChatGPT im Vergleich zu Claude), rufen Sie nach dem Erstellen der Notion-Seite die REST API auf:

curl -s https://api.surmado.com/v1/reports/{report_id} \
  -H "Authorization: Bearer sur_live_YOUR_API_KEY" \
  | jq '.public_intelligence.data.platform_variance'

Aktualisieren Sie dann die Notion-Seite mit einem Rich-Text-Block, der die plattformspezifischen Werte enthält.


Fehlerbehebung

Notion erstellt die Seite, aber die Eigenschaften sind leer: Der Feldtyp in Notion muss zur Payload passen. Zahlen wie presence_score brauchen eine Eigenschaft vom Typ Number, nicht Rich Text. Prüfen Sie, dass der Typ jeder Eigenschaft der Tabelle oben entspricht.

Der Webhook wird ausgelöst, aber der Notion-Aufruf schlägt fehl: Surmado wiederholt die Zustellung bei 5xx-Antworten dreimal und gibt dann auf. Prüfen Sie die Logs Ihres Servers, beheben Sie den Fehler und rufen Sie die verlorenen Berichte anschließend manuell über die REST API erneut ab.

Strategy-Berichte zeigen keine Werte: Das ist erwartetes Verhalten. Strategy stellt public_intelligence nicht bereit, nur report.token und report.pdf_url sind verfügbar.


Verwandt: API-Integrationsleitfaden | Strukturierte Daten und Intelligence Tokens | Zapier-Integrationsleitfaden | Make-Integrationsleitfaden | n8n-Integrationsleitfaden