Sequenzy MCP

offiziell

E-Mail-Marketing-Tool für SaaS

Was kann man mit Sequenzy MCP machen?

  • Abonnenten und Segmente verwalten — Bitten Sie Ihren Assistenten, Listen zu erstellen, Tags anzuwenden, Bulk-Tags abzugleichen oder synthetische Ereignisse über Tools wie create_list und zu testen.
  • Kampagnen erstellen und senden — E-Mail-Kampagnen entwerfen, planen, in der Vorschau anzeigen oder senden, einschließlich aufgelöster Zielgruppen-Vorschauen und Conversion-Zielen, mithilfe von Tools wie create_campaign und send_campaign.
  • Landingpages und Formulare erstellen — Listenbezogene Anmeldeformulare und Landingpages mit responsiven Block-Layouts gestalten, dann veröffentlichen oder statische Website-Einbettungen über create_landing_page erhalten.
  • Zielgruppen mit Meta synchronisieren — Dynamische Segmente an Meta Custom Audiences für Facebook- und Instagram-Retargeting pushen.
  • Sequenzen und Automatisierungen verwalten — Mehrstufige E-Mail-Sequenzen mit Einstiegstriggern, Stoppbedingungen und Test-Sends an Prüfer mithilfe von create_sequence und erstellen.
  • Zustellbarkeit und Versand überwachen — Pausierten Versand diagnostizieren, Bounce-/Beschwerde-Sperrungen prüfen und berechtigte Hard-Bounce-Pausen mit get_sending_status und resume_sending wiederherstellen.

Dokumentation

Sequenzy MCP Server

Offizieller MCP-Server für Sequenzy, die KI-gestützte E-Mail-Marketing-Plattform.

Verbinden Sie Sequenzy mit Claude Desktop, Claude Code, Codex, Cursor, Windsurf, VS Code Copilot, OpenClaw und anderen MCP-Clients, damit Ihr KI-Assistent E-Mail-Operationen mit strukturierten Tools statt handgeschriebener API-Aufrufe verwalten kann.

Was Sie tun können

  • Verwalten Sie Abonnenten, Tags, Listen und dynamische Segmente, einschließlich Bulk-Tag-Abgleich und synthetischer Ereignistests.
  • Synchronisieren Sie Segmente mit Meta Custom Audiences für Facebook- und Instagram-Retargeting.
  • Verwalten Sie Produkte und fügen Sie digitale Lieferdateien für Kaufautomatisierungen hinzu.
  • Laden Sie gehostete E-Mail-Bilder mit Alt-Text und wiederverwendbaren responsiven Zuschnitteinstellungen hoch.
  • Entwerfen, aktualisieren, planen und prüfen Sie Kampagnen, einschließlich aufgelöster Zielgruppenvorschauen, persistierter Conversion-Ziele sowie Absender-, Antwort-an-, CC- und BCC-Identitäten.
  • Rendern Sie Kampagnen, Sequenzschritte und Vorlagen in exakt E-Mail-sicheres HTML, ohne zu senden.
  • Fügen Sie E-Mails One-Click-Umfrage- und NPS-Blöcke hinzu und prüfen Sie Kampagnenantwortzusammenfassungen.
  • Erstellen und bearbeiten Sie E-Mail-Sequenzen, einschließlich Multi-Listen/Tag-Trigger, Eintrittszielgruppen- und eigenschaftsgefilterter Stoppbedingungen, Sendeidentitätsüberschreibungen, Umstrukturierung bestehender Graphen und direkter Testsendungen an interne Prüfer.
  • Brechen Sie Kampagnen ab, pausieren, setzen fort, duplizieren oder löschen Sie sie und schreiben Sie Kontakte in Sequenzen ein.
  • Verwalten Sie transaktionale E-Mail-Vorlagen und senden Sie transaktionale E-Mails an gemeinsame An-, CC- und BCC-Empfängerlisten.
  • Stellen Sie lokalisierte Vorlagenvarianten bereit oder stellen Sie KI-Übersetzungen für aktivierte Sprachen in die Warteschlange.
  • Erstellen, Vorschauen, Bearbeiten, Veröffentlichen, Zurückziehen und Löschen von Landingpages.
  • Erstellen Sie listenspezifische gespeicherte Anmeldeformulare mit responsiven Stapel-, Zeilen-, Raster- und Einzelbild-Overlay-Blockgruppen (einschließlich Vordergrundabstandssteuerungen) und geben Sie dann clientsichere statische Site-Einbettungen zurück.
  • Erstellen, Zielen, Veröffentlichen, Duplizieren und Bereitstellen gespeicherter Anmelde-Popups mit denselben rekursiven Blocklayouts.
  • Verbinden und verifizieren Sie benutzerdefinierte Domains für veröffentlichte Landingpages.
  • Verwalten Sie Teameinladungen, Posteingangskonversationen und ausgehende Webhook-Endpunkte.
  • Generieren Sie E-Mail-Texte, Betreffzeilen und mehrstufige Sequenzen.
  • Prüfen Sie Analysen, Abonnentenaktivität, Zustellbarkeitsstatus, unternehmensweite Sendeunterbrechungen, Integrationen, veröffentlichte Ereignis-Payload-Schemata, Sendeidentitäten, Tracking-Einstellungen und Dashboard-URLs.
  • Prüfen Sie, ob „Gesendet mit Sequenzy" für einen Workspace sichtbar ist, warum das Inhaberabonnement es entfernt oder nicht entfernt, und öffnen Sie die kanonische Abonnementseite für ein Upgrade oder eine Verlängerung. Berechtigungsänderungen gelten für zukünftige Sendungen aus bestehenden Live-Sequenzen, ohne deren Blöcke zu bearbeiten.
  • Diagnostizieren Sie, warum das Senden pausiert ist, und stellen Sie berechtigte Hard-Bounce-Unterbrechungen nach bestätigter Listenbereinigung wieder her.
  • Prüfen Sie die Unterdrückung von Bounces, Beschwerden und E-Mail-Hygiene für exakte Empfänger und bereinigen Sie berechtigte veraltete Bounces, ohne die gemeinsame SES-Unterdrückungsliste offenzulegen.
  • Konfigurieren Sie Unternehmensproduktinformationen, kontoweite Sendeidentitätsstandards, benennen Sie einzelne Absender- und Antwortprofile um, verwalten Sie Absenderdomains und prüfen Sie Integrationsbeispiele für gängige Frameworks.

Jedes veröffentlichte MCP-Tool enthält explizite readOnlyHint-, destructiveHint- und openWorldHint-Annotationen, damit kompatible Clients genaue Tool-Verwendungsmöglichkeiten anzeigen können. Tools veröffentlichen auch outputSchema-Definitionen und geben structuredContent zurück, wodurch Clients und Modelle maschinenlesbare Ergebnisformen für Folgeaufrufe erhalten.

Schnelleinrichtung

Der einfachste Einrichtungsweg ist der Sequenzy-Assistent:

npx @sequenzy/setup

Der Assistent öffnet den Browser-Login-Flow, erstellt einen persönlichen API-Schlüssel, erkennt unterstützte KI-Clients und konfiguriert sie automatisch, wenn möglich.

Gehostetes Remote-MCP

Für Clients, die Streamable HTTP MCP unterstützen, verwenden Sie den gehosteten Endpunkt von Sequenzy, anstatt einen lokalen Stdio-Prozess auszuführen:

https://api.sequenzy.com/v1/mcp

ChatGPT und das OpenAI-Plugin-Verzeichnis verwenden die geprüfte gehostete Oberfläche:

https://api.sequenzy.com/v1/mcp/openai

Diese Oberfläche teilt dieselbe Implementierung und behält den Standard-Toolsatz bei, mit Ausnahme von sechs Operationen: connect_integration, create_api_key, create_webhook, list_webhook_deliveries, replay_webhook_delivery und rotate_sequence_inbound_webhook_secret. Feedback bleibt mit einem reduzierten Schema für generalisiertes, explizit angefordertes Produktfeedback verfügbar.

Remote-Clients sollten sich bei Unterstützung über den Sequenzy-OAuth-Flow authentifizieren. Lokale und Automatisierungs-Clients können weiterhin das Stdio-Paket unten mit SEQUENZY_API_KEY verwenden.

Der gehostete Endpunkt und das Stdio-Paket unterstützen die MCP-Spezifikation 2026-07-28 und bleiben gleichzeitig mit Clients aus dem Jahr 2025 kompatibel. Moderne HTTP-Clients verwenden Pro-Anfrage-Erkennung und Methoden-Header; bestehende Clients funktionieren weiterhin über denselben Endpunkt und denselben Paketbefehl.

Maschinenlesbare Erkennungsdateien:

Daten und Datenschutz

Sequenzy sendet einem MCP-Client nur die Daten, die für das Tool benötigt werden, das der Benutzer auszuführen bittet, innerhalb des ausgewählten Workspace und der Schlüssel- oder OAuth-Bereiche, die diesem Client gewährt wurden. Abhängig vom angeforderten Tool kann dies Workspace-Namen und -IDs; Abonnentenkontakt-, Einwilligungs-, Zielgruppen-, Attribut-, Ereignis-, Engagement-, Antwort-, Umfrage- und Handelsdaten; Kampagnen- und Automatisierungsinhalte; Lieferanalysen; und Integrations- oder Webhook-Status umfassen. Siehe die Sequenzy-Datenschutzrichtlinie für die vollständigen Kategorien, Zwecke, Empfänger, Aufbewahrungsfristen und Benutzerkontrollen.

Verwenden Sie keine offenen benutzerdefinierten Attribute, Ereignisse, Notizen, Formulare, Webhook-Beispiele, E-Mail-Variablen oder Feedback, um Zahlungskartendaten, Gesundheits- oder medizinische Daten, Regierungsidentifikatoren, biometrische oder genetische Daten, Authentifizierungsdaten, sensible demografische Daten oder präzise Geolokalisierung zu übermitteln.

Die von OpenAI geprüfte Route erklärt und erzwingt diese Einschränkungen für relevante offene Eingaben, einschließlich verschachtelter Attributpfade wie profile.ssn, Koordinatenpaare wie lat/lng und beschrifteter Prosa wie Religion: ... oder GPS coordinates: .... Sie lehnt eine berechtigungstragende URL in jedem Argument ab, unabhängig davon, ob die Berechtigung im Userinfo, Pfad, Query oder Fragment sitzt, wie z. B. ein Formular- oder Popup-redirectUrl mit einem Zugriffstoken oder einer URL-Signatur. Eingeschränkte Attributselektoren in Merge-Tags werden abgelehnt, ohne gewöhnlichen erstellten Text zum selben Thema zu blockieren. Auf dieser Oberfläche akzeptiert render_email Beispieldaten oder ein richtliniengeprüftes Inline-subscriber, aber nicht subscriberId, sodass es keine ungeprüften gespeicherten benutzerdefinierten Attribute auflösen kann. Seine Ergebnisse entfernen eingeschränkte Felder, rohe API-Fehler, Debug-Payloads, interne Anfrage-/Trace-/Sitzungsidentifikatoren, unnötige Konto- oder Berechtigungsidentifikatoren, gespeicherte berechtigungstragende URLs und Inbound-Webhook-URLs. Standard-Remote-MCP und das lokale Stdio-Paket behalten den vollständigen Vertrag für vertrauenswürdige Clients, einschließlich berechtigungsbasierter Integrationskonfiguration, einmaliger API-Schlüssel- und Webhook-Geheimnisse, Inbound-Webhook-URLs und detaillierter API-Fehler. Bevorzugen Sie das Dashboard oder die lokale CLI, wenn Geheimnisse außerhalb einer KI-Konversation bleiben sollen. submit_feedback läuft nur, wenn der Benutzer explizit darum bittet; sein OpenAI-Schema ist auf eine generalisierte Nachricht, Kategorie und optionalen Workflow-Kontext beschränkt, und die Route lehnt Feedback-Text ab, der eine E-Mail-Adresse oder Ressourcen-ID enthält.

Was die geprüfte Oberfläche garantiert, ist begrenzt. Sie erkennt eingeschränkte Daten nach Form: englische Feldnamenwörter wie passport_id, user.ssn oder api_secret auf jeder Verschachtelungstiefe, beschriftete Prosa wie Diagnosis: ..., bekannte Berechtigungsformen, dezimale Koordinatenpaare und berechtigungstragende URLs in jeder Zeichenfolge, einschließlich HTML. Sie interpretiert keine unbeschriftete Prosa, nicht-englische Feldnamen oder Werte, die ein Client absichtlich verschleiert; diese bleiben durch die oben genannte Nutzungsbeschränkung abgedeckt, nicht durch den Filter.

Manuelle Einrichtung

Alle Stdio-MCP-Clients verwenden denselben Befehl:

  • Befehl: npx
  • Argumente: -y @sequenzy/mcp
  • Erforderliche Umgebungsvariable: SEQUENZY_API_KEY=seq_user_your_key_here

Optionale Umgebungsvariablen:

  • SEQUENZY_API_URL - Sequenzy-API-Basis-URL. Standard: https://api.sequenzy.com.
  • SEQUENZY_APP_URL - Sequenzy-Dashboard-Basis-URL, die von App-URL-Helfern verwendet wird. Standard: https://sequenzy.com.

Claude Desktop

Fügen Sie dies zu Ihrer Claude-Desktop-Konfiguration hinzu:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "sequenzy": {
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Starten Sie Claude Desktop nach dem Bearbeiten der Konfiguration neu.

Claude Code

claude mcp add --scope user --env=SEQUENZY_API_KEY=seq_user_your_key_here sequenzy -- npx -y @sequenzy/mcp

Unter nativem Windows umschließen Sie npx mit cmd /c:

claude mcp add --scope user --env=SEQUENZY_API_KEY=seq_user_your_key_here sequenzy -- cmd /c npx -y @sequenzy/mcp

Für eine gemeinsame Projektkonfiguration verwenden Sie .mcp.json:

{
  "mcpServers": {
    "sequenzy": {
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Codex

codex mcp add sequenzy --env SEQUENZY_API_KEY=seq_user_your_key_here -- npx -y @sequenzy/mcp
codex mcp list

Manuelle Codex-Konfiguration in ~/.codex/config.toml:

[mcp_servers.sequenzy]
command = "npx"
args = ["-y", "@sequenzy/mcp"]

[mcp_servers.sequenzy.env]
SEQUENZY_API_KEY = "seq_user_your_key_here"

Cursor

Installieren Sie Sequenzy aus dem Cursor-Marketplace für eine gehostete Verbindung mit Sequenzy-OAuth. Das Plugin verbindet sich mit:

https://api.sequenzy.com/v1/mcp

Nach der Installation schließen Sie den Browser-Anmeldevorgang ab. Der Cursor-Agent kann dann Sequenzy-Tools aus dem Chat verwenden, auch wenn Grok das ausgewählte Modell ist.

Für eine manuelle lokale Stdio-Einrichtung fügen Sie dies stattdessen zu ~/.cursor/mcp.json hinzu:

{
  "mcpServers": {
    "sequenzy": {
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Windsurf

Verwenden Sie dieselbe JSON-Form wie Cursor.

  • macOS: ~/Library/Application Support/Windsurf/mcp.json
  • Windows: %APPDATA%\Windsurf\mcp.json

VS Code Copilot

VS Code verwendet ein servers-Objekt:

{
  "servers": {
    "sequenzy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Andere MCP-Clients

Für OpenClaw, Hermes und andere MCP-kompatible Clients richten Sie den Client auf npx -y @sequenzy/mcp und setzen Sie SEQUENZY_API_KEY.

Einen API-Schlüssel erhalten

  1. Öffnen Sie das Sequenzy-Dashboard.
  2. Verwenden Sie den MCP-Einrichtungsablauf, um einen persönlichen Schlüssel zu erstellen, oder öffnen Sie Einstellungen -> API-Schlüssel, um einen Unternehmensschlüssel zu erstellen.
  3. Wählen Sie eine Berechtigungsvoreinstellung oder die genauen benutzerdefinierten Bereiche, die die Integration benötigt.
  4. Fügen Sie den Schlüssel zu Ihrer MCP-Client-Konfiguration hinzu.

Persönliche Schlüssel beginnen mit seq_user_. Sie können sie jederzeit im Dashboard widerrufen.

Unternehmensschlüssel können auch bereinigt werden, ohne Geheimnisse offenzulegen. Rufen Sie list_api_keys auf, um die Schlüssel-ID, den Namen, das nicht-geheime Präfix, die Berechtigungen, den Zeitstempel der letzten Verwendung und das isCurrent-Kennzeichen zu vergleichen, und übergeben Sie dann die genaue ID an revoke_api_key. delete_api_key ist ein Kompatibilitätsalias für dieselbe permanente Operation. Listen- und Widerrufsantworten enthalten niemals den Klartextschlüssel oder den gespeicherten Schlüssel-Hash.

Wiederherstellung bei fehlenden API-Schlüsselberechtigungen

Wenn ein Tool einen fehlenden Bereich wie campaigns:read oder templates:write meldet, rufen Sie get_account auf. Sein apiKeyPermissions-Feld listet die aktuelle Schlüsselidentität und den Typ, Bereiche, häufige fehlende Marketing-Lesebereiche und einen direkten manageUrl auf. Die von OpenAI geprüfte Route gibt dieselben Berechtigungen ohne die Benutzerkonten-ID oder die Identität des aktiven Schlüssels zurück. Persönliche Schlüssel öffnen Konto-API-Schlüssel; Unternehmensschlüssel öffnen die API-Schlüssel-Einstellungen des ausgewählten Workspace. Wenn der Schlüssel account:read nicht enthält, öffnen Sie das Sequenzy-Dashboard direkt und wählen Sie die passende API-Schlüssel-Seite.

Berechtigungen sind direkt bearbeitbar, also öffnen Sie manageUrl. Verwenden Sie für einen Unternehmensschlüssel list_api_keys und sein isCurrent-Kennzeichen, um den aktiven Schlüssel vor dem Bearbeiten zu identifizieren, und versuchen Sie dann das fehlgeschlagene Tool erneut, ohne die Berechtigung zu ersetzen oder den Client neu zu starten. Ein Agent, der einen Unternehmensschlüssel mit api_keys:manage verwendet, kann stattdessen update_api_key aufrufen; persönliche Schlüssel müssen auf der Kontoseite bearbeitet werden, da dieses Tool nur Unternehmensschlüssel verwaltet. Seine scopes- und preset-Eingaben ersetzen die gesamte Berechtigungsauswahl, anstatt sie zusammenzuführen. Bewahren Sie daher jeden vorhandenen Bereich auf, der noch benötigt wird. Gehostete OAuth-Verbindungen können alternativ getrennt und mit breiteren Berechtigungen neu autorisiert werden. Wenn der aktive Schlüssel selbst api_keys:manage nicht besitzt, rufen Sie request_api_key_handoff auf, anstatt update_api_key erneut zu versuchen. Dies erfordert account:read und gibt eine URL zur Überprüfung durch den Eigentümer zurück, bei der der angeforderte Schlüsselname, Berechtigungen und ein optionaler Vorgänger vorausgefüllt sind. Es wird niemals ein Schlüssel erstellt oder zurückgegeben; der Workspace-Eigentümer prüft das Formular, erstellt den Ersatz im Browser und kopiert ihn in den Client. Übergeben Sie replaceApiKeyId: "current", um die Widerrufung des aktiven Schlüssels anzubieten, nachdem der Ersatz erstellt wurde. Wenn der aktive Schlüssel ebenfalls account:read nicht besitzt, verwenden Sie direkt das Dashboard.

Das Standard-Preset Sicherer Agentenzugriff umfasst lists:write und tags:write, sodass Agenten Listen- und Tag-Definitionen erstellen und aktualisieren können, und es umfasst subscribers:tag zum Anwenden von Tags auf bestehende Kontakte. Es umfasst außerdem ab_tests:read, ab_tests:write und sequences:write, sodass Agenten A/B-Variantentexte von Sequenzen prüfen und bearbeiten können, einschließlich Warenkorb- und Browsing-Abbruch- Nachrichten. Es umfasst nicht subscribers:write, daher können keine Kontakte zu Listen hinzugefügt oder aus Listen entfernt werden. Das Löschen einer Liste oder eines Tags erfordert weiterhin die entsprechende lists:delete- oder tags:delete-Berechtigung.

Das KI-Entwurfs-Preset umfasst subscribers:write, sodass Entwurfs-Agenten eine Liste erstellen sowie anlegen können. Importe, die listIds anwenden, benötigen ebenfalls lists:write; die Sequenz-Anmeldung oder der Double-Opt-in-Versand erfordert zusätzlich automations:trigger.

Tools

Die Standardoberfläche stellt derzeit 243 MCP-Tools bereit. Die von OpenAI geprüfte Oberfläche stellt 237 bereit; nur die sechs oben aufgeführten Operationen fehlen.

Tools lehnen Argumente ab, die sie nicht deklarieren, anstatt sie stillschweigend zu ignorieren. Fehler benennen die nicht unterstützten Felder, listen die unterstützten Argumente auf und geben gezielte Hinweise zu häufigen Fehlern wie erfundenen Subscriber-Filtern oder Sortieroptionen.

Konto, Unternehmen, Einrichtung

ToolBeschreibung
get_accountKontoinformationen, verfügbare Unternehmen, aktuelle Schlüsselberechtigungen und die URL zur Verwaltung von API-Schlüsseln abrufen.
select_companyDas aktive Unternehmen für zukünftige Tool-Aufrufe festlegen.
get_app_urlsDashboard-URLs für Kampagnen, Landingpages, Sequenzen, E-Mails, Einstellungen, Abonnementverwaltung, Domains und Details zu gesendeten E-Mails erstellen. settingsTab: "billing" löst zu Konto -> Abonnement auf.
create_companyEin neues Unternehmen oder eine neue Marke erstellen.
get_companyUnternehmensdetails, Produktinformationen, Markenkontext, Lokalisierung, Antwortverfolgungseinstellungen, aktuelle Standardwerte für Von/Antwort-an und die effektive schreibgeschützte emailBranding-Berechtigung mit Plan-/Statusgrund und Abonnement-URL lesen; STO wird ausdrücklich als kampagnenbezogen identifiziert.
update_companyProduktinformationen, Markenkontext, E-Mail-Design, Antwortverfolgung und kontoübergreifende Standardwerte oder Namen für Von/Antwort-an-Profile bearbeiten.
get_sync_rulesDie Ereignis-zu-Tag-Regeln des Unternehmens lesen und prüfen, ob die geerbte Plattform-Voreinstellung verwendet wird.
update_sync_rulesAlle Synchronisierungsregeln ersetzen; [] übergeben, um sie zu deaktivieren, oder null, um die SaaS/E-Commerce-Plattform-Voreinstellung zu übernehmen.
get_shopify_automation_settingsEinstellungen zu Browser-Abbruch, Warenkorb-Abbruch und Preisverfall für den verbundenen Shopify-Shop lesen.
update_shopify_automation_settingsShopify-Automatisierungseinstellungen teilweise aktualisieren oder einen einzelnen Abschnitt auf die Plattform-Standardwerte zurücksetzen.
create_api_keyEinen Unternehmens-API-Schlüssel erstellen und dessen einmaliges Geheimnis auf Standard-MCP zurückgeben; in der OpenAI-geprüften Route ausgelassen.
request_api_key_handoffEine vom Eigentümer geprüfte Erstellungs-/Rotations-URL vorbereiten, wenn der aktive Schlüssel API-Schlüssel nicht selbst verwalten kann.
list_api_keysUnternehmens-API-Schlüssel als nicht-geheime Metadaten zur sicheren Identifizierung und Bereinigung auflisten.
update_api_keyEinen Unternehmens-API-Schlüssel umbenennen oder dessen Berechtigungsvoreinstellung oder Bereiche ersetzen, ohne den Schlüsselwert zu ändern.
revoke_api_keyEinen genauen Unternehmens-API-Schlüssel anhand der ID dauerhaft widerrufen, nachdem er mit list_api_keys geprüft wurde.
delete_api_keyKompatibilitätsalias für revoke_api_key.
list_websitesSende-Domains mit gespeichertem aggregiertem SPF-, DKIM- und MAIL-FROM-Status auflisten.
add_sending_domainEine Sende-Domain hinzufügen und deren kohortenspezifische DNS-Einrichtungsdatensätze zurückgeben.
add_websiteKompatibilitätsalias für add_sending_domain.
check_websiteGespeicherte SPF-, DKIM-, MAIL-FROM- und aggregierte Verifizierungsdetails einer Sende-Domain lesen.
verify_sending_domainEine neue DNS-/Anbieter-Verifizierung der Sende-Domain ausführen und aktuellen Status und Diagnosen zurückgeben.
list_integrationsVerbundene Integrationen mit Verbindungs- und Synchronisierungsstatus auflisten, ohne Anmeldeinformationen zurückzugeben.
get_sending_statusAktives, pausiertes oder ausgesetztes Senden diagnostizieren, einschließlich Durchsetzungsnennern, Prüfschwellen und Korrekturmaßnahmen.
resume_sendingEine berechtigte Pause wegen harter Bounces wiederherstellen, nachdem ausdrücklich bestätigt wurde, dass die Liste bereinigt wurde.
get_tracking_settingsKontoübergreifende und Transaktions-API-Standardwerte für Öffnungen/Klicks, Abmeldung, Attribution, UTM, Klick-Domain, Antwortverfolgung und Double-Opt-in lesen.
update_tracking_settingsKontoübergreifende und Transaktions-API-Standardwerte für Tracking, Attribution, UTM und kontoübergreifendes Double-Opt-in aktualisieren.
get_integration_guideFramework-spezifische Integrationsbeispiele abrufen.
get_integrationEine verbundene Integration, deren Ereignisverkabelung, Listen-Targeting, aktuelle Aktivität und Empfehlungen prüfen.
list_integration_capabilitiesAnbieterfunktionen vergleichen, unabhängig davon, ob sie verbunden sind.
connect_integrationUnterstützte API-Schlüssel- oder Webhook-Secret-Anbieter auf Standard-MCP verbinden, einschließlich verwalteter Lemon-Squeezy-Webhooks, nur ausgehendem Attio und optionalem PostHog/Segment-Verlaufsimport; in der OpenAI-geprüften Route ausgelassen.
get_event_schemaVeröffentlichte Ereignis-Payload-Beispiele, Eigenschaftspfade, Typen und Merge-Tags nach Anbieter prüfen.
list_integration_activityDas gespeicherte integrationsspezifische Webhook- und Synchronisierungsaktivitätsprotokoll lesen.
set_integration_sync_enabledMassenimporte und Backfills aktivieren oder deaktivieren, während Live-Webhooks verbunden bleiben.
set_integration_list_targetingAuswählen, welchen Listen Kontakte, die durch eine unterstützte Integration erstellt wurden, bei zukünftigen Anbieter-Schreibvorgängen beitreten.
sync_integrationZahlungseinnahmen, Supabase-Benutzer oder einen PostHog/Segment-Ereignisverlaufsimport mit der gespeicherten Integrationskonfiguration in die Warteschlange stellen.
get_integration_pixelDen Live-Pixel-/Konfigurationsstatus von Shopify lesen und bestätigte dunkle Ereignisse von einem unbekannten Lesevorgang unterscheiden.
activate_integration_pixelInstallieren oder neu ausrichten des Shopify-Storefront-Pixels; idempotent, wenn er bereits aktuell ist.
list_web_tracking_keysAuflisten von veröffentlichbaren Website-Tracking-Schlüsseln, Ursprungsbeschränkungen, Nutzungsstatus und Installations-Snippets.
get_web_tracking_keyAbrufen eines Website-Tracking-Schlüssels mit seinem exakten Installations-Snippet und Ingest-Endpunkt.
create_web_tracking_keyErstellen eines veröffentlichbaren Tracking-Schlüssels für ein Nicht-Shopify-Storefront oder eine Website.
update_web_tracking_keyUmbenennen, Einschränken, Widerrufen oder erneutes Aktivieren eines Website-Tracking-Schlüssels.
delete_web_tracking_keyDauerhaftes Löschen eines Website-Tracking-Schlüssels, nachdem sein Snippet entfernt wurde.
list_sender_profilesAuflisten von Absender- und Antwort-adresse-Profilen, Standardwerten und Bereitschaft der Sende-Domain.
update_sender_profileUmbenennen eines Absender- oder Antwort-adresse-Profils, ohne die Konto-Standardwerte zu ändern.
delete_sender_profileDauerhaftes Löschen eines ungenutzten Absender-Profils, mit Schutzmaßnahmen für aktive Sende-Oberflächen und den letzten verbleibenden Absender.
get_notification_preferencesLesen der Kontobenachrichtigungseinstellungen des aktuellen Benutzers pro Unternehmen und der unterstützten Modi, einschließlich des wöchentlichen Montagsberichts.
update_notification_preferencesAktualisieren der Zustellmodi für Kontobenachrichtigungen des aktuellen Benutzers, einschließlich Abmeldung vom Wochenbericht, ohne Auswirkungen auf Teammitglieder.
render_emailRendern von endgültigem E-Mail-sicherem HTML und Diagnostizieren unaufgelöster Merge-Tags, einschließlich Tippfehlern, die durch Standardwerte verborgen sind. Die von OpenAI überprüfte Route akzeptiert Beispieldaten oder einen richtliniengeprüften Inline-Abonnenten, nicht eine gespeicherte Abonnenten-ID.
get_sending_status hält den Postgres-gestützten Pausenzustand, die Review-Gates und die
Remediation verfügbar, wenn die Sender-Health-Analysen vorübergehend nicht verfügbar sind;
in diesem degradierten Fall ist senderHealth null.

render_email gibt unresolvedMergeTags zurück, damit Aufrufer einen unbekannten Namen von einem erkannten Tag unterscheiden können, das für den Vorschau-Kontakt lediglich leer ist. Unbekannte Namen werden auch dann gemeldet, wenn ein default-Filter Text geliefert hat: zum Beispiel rendert {{ subscriber.frstName | default: "there" }} eine plausible Begrüßung für jeden Kontakt, während gespeicherte Vornamen umgangen werden. Ein erkannter Name, der für einen Kontakt leer ist, wird nicht gemeldet, wenn sein Standardwert verwendet wird. Die OpenAI-geprüfte Route lehnt eingeschränkte Custom-Attribut-Selektoren innerhalb von Merge-Tags ab. Sie lässt auch das subscriberId-Argument weg; verwenden Sie ein policy-geprüftes Inline-subscriber oder lassen Sie Abonnentendaten für eine Beispielvorschau weg.

Um einen Sequenzschritt zu rendern, dessen nodeType action_ab_test ist, übergeben Sie die sequenceId und nodeId des Schritts zusammen mit einem variantId von get_sequence.sequence.emails[].abTest.variants. Diese Schritte haben keine eigene E-Mail, daher ist die Variante erforderlich; das Lesen und Rendern ihrer konkurrierenden Kopie erfordert ebenfalls den ab_tests:read-Bereich.

Für Supabase verwendet sync_integration die Projekt-, Schema-, Tabellen-, Listen- Auswahl- und Einwilligungs-Zuordnungen, die im Dashboard gespeichert sind, erneut. Es kann nicht auf eine beliebige Tabelle abzielen. Führen Sie es nach der Installation des Live-Datenbank-Triggers aus, um Benutzer zu importieren, die vor der Installation des Triggers existierten, und fragen Sie dann get_integration und list_integration_activity für Fortschritt und Ergebnisse auf Zeilenebene ab.

set_integration_sync_enabled steuert nur Bulk-Importe und Backfills; es stoppt nicht den Live-Webhook eines Anbieters, der Kontakte erstellt. Verwenden Sie set_integration_list_targeting, um ihre zukünftigen Listenmitgliedschaften zu wählen: null folgt den Workspace-Standardwerten, [] tritt keiner Liste bei, und ein gefülltes Array zielt auf diese Listen. Die Änderung ist nicht rückwirkend und entfernt niemals bestehende Mitgliedschaften. Sie stoppt auch nicht die Standard-any_contact-Sequenzen, die listenlose Kontakte einschreiben; explizite any_list- und spezifische Listen-Sequenzen erfordern eine passende Mitgliedschaft. Kombinieren Sie Listen-Targeting mit pause_sequence_enrollments, wenn diese Standard-Einschreibungen ebenfalls gestoppt werden müssen. Supabase, Stripe, Shopify, Wix und Webflow unterstützen diese Steuerung.

Für PostHog startet sync_integration den Event-History-Import von Anfang an mit dem gespeicherten persönlichen API-Schlüssel neu. Importierte Ereignisse werden dedupliziert, sodass das Wiederholen eines fehlgeschlagenen Imports keine Duplikate erzeugt.

Für Segment kann connect_integration auf Standard-MCP optional kürzliche Event- History von Unify importieren, nachdem der Live-Webhook verbunden ist. Der Import durchläuft bestehende Kontakte über die Profile-API, deckt die letzten 14 Tage der API ab, überspringt Kontakte ohne passendes Profil und dedupliziert sicher Wiederholungen und Live-Webhook-Überschneidungen. Neue Verbindungen überspringen automatische Page/Screen-Aufrufe, es sei denn, diese Namen sind explizit auf der Whitelist. Segment-Webhook-Geheimnisse müssen 16-153 UTF-8-Bytes lang sein. Auf der OpenAI-geprüften Route, die connect_integration weglässt, verbinden Sie Segment stattdessen im Dashboard oder lokalen CLI. Verwenden Sie sync_integration, um mit den gespeicherten Anmeldeinformationen erneut zu versuchen.

Für Lemon Squeezy übergeben Sie provider: "lemon_squeezy", einen API-Schlüssel und die numerische Store-ID als providerAccountId. Lassen Sie webhookSecret für das Standard- verwaltete Setup weg; die Antwort meldet webhookProvisioning und testMode. Geben Sie ein 16-40 Zeichen langes Signing-Secret nur für manuelles Webhook-Setup an, unter Verwendung des zurückgegebenen webhookUrl. Anmeldeinformationen werden niemals zurückgegeben.

Für Attio akzeptiert connect_integration auf Standard-MCP ein Workspace-Zugriffs- Token ohne Webhook-Secret, mit optionalem settings.listMap als Zuordnung von Sequenzy-Listen-IDs zu Attio-Personenlisten-UUIDs oder API-Slugs, plus syncCompanyFromDomain zur Steuerung des Unternehmensabgleichs von Nicht-Free-Mail-Domains. Auf der OpenAI-geprüften Route verbinden Sie Attio im Dashboard oder lokalen CLI und verwenden Sie dann update_attio_settings für dieselben Einstellungen. Die Integration ist nur ausgehend: neue Beitritte zu zugeordneten Sequenzy-Listen aktualisieren die Person per Upsert und fügen sie der Attio- Liste hinzu; Listenentfernungen entfernen keine Datensätze aus Attio.

Rufen Sie get_event_schema auf, bevor Sie ein {{event.*}}-Merge-Tag oder einen Event- Eigenschaftsfilter schreiben. Lassen Sie eventName weg, um dokumentierte integrierte Ereignisse aufzulisten; geben Sie einen Ereignisnamen an, um anbieterspezifische Beispiel-Payloads und Eigenschaftspfade zu erhalten, und filtern Sie optional nach provider. Benutzerdefinierte Ereignisnamen bleiben gültig, auch wenn das Ergebnis documented: false meldet; das bedeutet nur, dass keine Referenzprobe veröffentlicht ist. Verwenden Sie Integrationsaktivität oder Sequenz-Einschreibungen für tatsächliche Zustelldaten, da dieses Tool statische Referenzdaten zurückgibt.

Für eine neue Absendedomain rufen Sie add_sending_domain auf, veröffentlichen Sie die DNS-Einträge in der zurückgegebenen website.dnsRecords, warten Sie auf DNS-Propagation und rufen Sie dann verify_sending_domain auf. Veröffentlichen Sie jeden zurückgegebenen Eintrag, anstatt einen festen Anbieter oder eine feste Eintragsanzahl anzunehmen: Unified-Domains enthalten erforderliches DMARC, während Legacy-Domains Amazon-SES-MAIL-FROM- und Inbound-Reply-Einträge zurückgeben können. Wenn die Verifizierung vor der Erstellung versucht wird, verweist der Fehler zurück auf add_sending_domain mit der angeforderten Domain.

Für Shopify rufen Sie get_integration_pixel auf, bevor Sie sich auf Produktansichten, Warenkorbaktivität oder Browse-Abandonment-Trigger verlassen. Das Ergebnis wird live von Shopify gelesen, da Händler das Pixel unabhängig entfernen können. Wenn pixel.healthy falsch ist, benennt dependentEvents die Trigger, die nicht ankommen können; rufen Sie activate_integration_pixel auf, um das Pixel zu installieren oder neu auszurichten. Die Aktivierung ist idempotent, und Ereignisse beginnen beim nächsten Storefront-Besuch, anstatt nachträglich befüllt zu werden.

Für benutzerdefinierte, Headless-, Ticketing- oder SaaS-Websites verwenden Sie list_web_tracking_keys, bevor Sie sich auf Produktansichts- oder Warenkorb-Trigger verlassen. Erstellen Sie einen Schlüssel mit einer expliziten Origin-Whitelist, installieren Sie das zurückgegebene installSnippet, und lassen Sie dann das authentifizierte Backend des Kunden ein kurzlebiges Proof durch POST /api/v1/web-tracking-identities prägen und sequenzy.identify(email, identityToken) bei Anmeldung oder Checkout aufrufen. Ein veröffentlichbarer Schlüssel allein zeichnet nur anonyme Aktivität auf und kann keine Abonnentenautomatisierung auslösen. Das zurückgegebene Snippet installiert synchrone Methodenstubs vor seinem Async-Loader, sodass Identitäts- und Ereignisaufrufe, die während des Seiten-Bootstraps gemacht werden, in die Warteschlange gestellt werden, bis das SDK bereit ist. Bevorzugen Sie das Widerrufen eines Schlüssels mit update_web_tracking_key, bevor Sie ihn dauerhaft löschen.

Neue Unternehmen starten ohne Sync-Regeln. Das geerbte Preset bleibt für SaaS/Ecommerce-Unternehmen verfügbar, indem Sie null an update_sync_rules übergeben; Dienstleistungs- und Beratungsunternehmen sollten normalerweise [] behalten oder explizite Regeln definieren.

Verwenden Sie list_sender_profiles, um die Profil-ID zu finden, und rufen Sie dann update_sender_profile auf, um nur deren Anzeigenamen zu ändern. Übergeben Sie type: "reply" für ein Reply-to-Profil; Absender ist die Standardeinstellung. Die Adresse, Absendedomain und kontoweite Standard-From/Reply-To-Auswahlen bleiben unverändert. Das Umbenennen erfordert den companies:manage-Bereich.

Verwenden Sie delete_sender_profile, um eine veraltete From-Identität dauerhaft zu entfernen. Es lehnt den letzten Absender und jedes Profil ab, das von einer Live-Kampagne, einer aktiven Sequenz (einschließlich eines Schritt-Overrides) oder einer transaktionalen E-Mail verwendet wird. Berechtigte Entwürfe und Kontostandards wechseln zum zurückgegebenen fallbackSenderProfileId; überprüfen Sie es, bevor Sie senden. Reply-to-Profile werden von diesem Lösch-Tool nicht unterstützt.

Shopify-Warenkorbabandonment ist standardmäßig aktiviert. Es feuert ecommerce.cart_abandoned nach einer Stunde Warenkorb-Inaktivität, mit einer 24-Stunden- Cooldown pro Abonnent. Verwenden Sie update_shopify_automation_settings, um die cartAbandonment.enabled-, delayHours- oder cooldownHours-Felder zu ändern; übergeben Sie cartAbandonment: null, um diese Standardwerte wiederherzustellen, ohne Browse- Abandonment- oder Preisabfall-Einstellungen zu ändern. Zeitwerte müssen positiv sein; delayHours ist auf 168 begrenzt und cooldownHours auf 720.

Abonnenten

ToolBeschreibung
add_subscriberEinen Abonnenten hinzufügen; Status ist nur bei Erstellung, verwenden Sie also update_subscriber für einen bestehenden Kontakt.
create_subscriber_importBis zu 5.000 vollständige CRM-Datensätze mit optionalem retry-sicherem idempotencyKey in die Warteschlange stellen; aktivierte E-Mail-Hygiene-Checks laufen separat nach der Aufnahme weiter.
get_subscriber_importFortschritt, Zeilenergebniszahlen und Fehlerzusammenfassungen für einen eingereihten Import lesen.
update_subscriberNative Profil- und Telefonfelder, SMS-Einwilligung, Attribute, Tags oder globalen Status aktualisieren.
remove_subscriberAbbestellen unter Beibehaltung der Suppression-Historie oder dauerhaft löschen nur mit hardDelete: true.
get_subscriberAbonnentendetails per E-Mail oder externer ID abrufen.
search_subscribersNach Abfrage, Tags, Liste, Status, Segment oder einem benutzerdefinierten Attribut suchen, mit automatischer oder fortsetzbarer Paginierung.
trigger_subscriber_eventEin benutzerdefiniertes Ereignis genau wie eine Integration ausgeben, mit Anwendung von Sync-Regeln und passenden Sequenz-Triggern.
trigger_subscriber_eventsMehrere geordnete benutzerdefinierte Ereignisse für einen Abonnenten ausgeben.
import_subscriber_eventsBis zu 25 quellenidentifizierte Ereignisse über Kontakte importieren; stille Historie erfordert, dass jede Zeile für einen Kontakt über eine Stunde alt ist.
bulk_add_subscriber_tagsTags zu bis zu 500 bestehenden Abonnenten hinzufügen; erfordert subscribers:tag und kann auch tags:write erfordern.
bulk_remove_subscriber_tagsTags von bis zu 500 bestehenden Abonnenten entfernen; erfordert subscribers:tag oder subscribers:write.

Verwenden Sie create_subscriber_import für das CRM-Onboarding, anstatt über add_subscriber zu loopen. Ein Aufruf akzeptiert 5.000 vollständige Datensätze und gibt eine asynchrone Import-ID zurück; fragen Sie sie mit get_subscriber_import ab. Ein completed-Import kann immer noch Zeilfehler enthalten, also prüfen Sie failedCount und failedReasons. Jede ausgeschlossene Zeile wird berücksichtigt: skippedReasons summiert sich zu skippedCount, und failedReasons summiert sich zu failedCount. Melden Sie jede Abweichung mit der Import-ID, anstatt zu raten, welche Zeilen weggelassen wurden. Wenn E-Mail-Hygiene aktiviert ist, laufen Zustellbarkeitsprüfungen separat nach der Aufnahme weiter, und Ergebnisse erscheinen in der Listen-Gesundheit; der Importstatus wartet nicht auf diese Urteile und enthält sie nicht. Ungültige Urteile werden von späteren Sendungen unterdrückt. Verwenden Sie optInMode: "confirmed" nur, wenn die Einwilligung bereits verifiziert wurde.

Für import_subscriber_events ist E-Mail erforderlich, wenn eine Zeile einen neuen Kontakt erstellen kann; externalId kann nur für einen bestehenden Kontakt allein stehen. Geben Sie eine stabile eventId in jeder Zeile an. Wiederholen verwendet die ursprüngliche Quittung erneut und versucht idempotent die nachgelagerte Wiederherstellung erneut. Die historische Klassifizierung ist pro Kontakt: Wenn eine Zeile für einen Kontakt aktuell ist, verwendet die gesamte Gruppe dieses Kontakts den Live-Seiteneffekt-Pfad.

Für Compliance-Suppression rufen Sie update_subscriber mit status: "unsubscribed" auf (oder verwenden Sie remove_subscriber ohne hardDelete). Wiederholen Sie add_subscriber nicht mit einem anderen Status: Der Status bei diesem Tool gilt nur, wenn der Kontakt zuerst erstellt wird, und ein nicht übereinstimmendes übersprungenes Ergebnis wird als Fehler gemeldet. Wenn add_subscriber listIds auslässt, folgt ein durch den Aufruf erstellter Kontakt den Standardlisten des Workspace, während ein bestehender Kontakt seine aktuellen Listenmitgliedschaften behält. Übergeben Sie Listen-IDs explizit, wenn ein bestehender Kontakt bestimmten Listen beitreten soll; übergeben Sie [], um keine Listen anzusprechen.

update_subscriber.phone schreibt das native Telefonfeld, das auf dem Kontakt angezeigt wird, nicht ein benutzerdefiniertes Attribut. Übergeben Sie smsConsent: true nur nach Überprüfung der ausdrücklichen schriftlichen Einwilligung, oder false, um den Kontakt abzumelden. Das Ändern der Telefonnummer ohne smsConsent setzt die SMS-Einwilligung zurück, da die Einwilligung zur alten Nummer gehört.

add_subscriber, update_subscriber und create_subscriber_import akzeptieren eine IANA timezone wie America/New_York. Der Wert wird im nativen Kontaktprofil gespeichert und ermöglicht die empfängerlokale Kampagnenzustellung. Übergeben Sie eine leere Zeitzone an update_subscriber, um sie zu löschen; ungültige Importzeilenwerte werden ignoriert, ohne den Rest des Imports abzulehnen.

Produkte & digitale Zustellung

ToolBeschreibung
list_productsListet synchronisierte Produkte aus Stripe, Shopify, WooCommerce, manuellen oder Commerce-API-Daten auf.
upsert_productsErstellt oder aktualisiert bis zu 100 Commerce-API-Produkte, die nach Ihrer Produkt-ID verschlüsselt sind.
delete_productLöscht ein Produkt, das zuvor über die Commerce-API übertragen wurde.
attach_product_fileHängt eine gehostete oder lokal hochgeladene Zustelldatei an ein Produkt an.
remove_product_fileEntfernt eine angehängte Produktzustelldatei.
sync_productsStellt eine Stripe-Produktkatalogsynchronisierung in die Warteschlange, optional mit Auswahl einer Integration nach ID.

Nachdem eine Produktzustelldatei angehängt wurde, enthalten übereinstimmende Kauferlebnisse download.url und download.name, sodass kaufausgelöste E-Mails Merge-Tags wie {{event.download.url}} verwenden können.

Für Stripe-Produkte gibt list_products jeden aktiven Preis als Variante zurück, mit der Stripe-Preis-ID in variantId. Verwenden Sie diese ID, um einen genauen Preis in einer Kaufsequenz anzusprechen, auch wenn es nicht der Standardpreis des Produkts ist.

Bild-Assets

ToolBeschreibung
upload_image_assetLädt ein E-Mail-Bild hoch und gibt seinen gehosteten Mediendatensatz plus einen einsatzbereiten Bildblock zurück.

Das Tool akzeptiert PNG-, JPEG-, GIF- und WebP-Bilder bis zu 5 MB. Lokale Stdio-Clients können filePath übergeben. Gehostete/Remote-Clients, die auf Anhangsbytes zugreifen können, können imageBase64 mit filename übergeben. Geben Sie altText für Barrierefreiheit an, verwenden Sie dann displayWidthPercent, cropHeight, objectFit (cover oder contain) und align, um die Screenshot-Präsentation zu standardisieren. Der zurückgegebene imageBlock kann direkt in das Block-Array kopiert werden, das von Kampagnen-, Sequenz-, Vorlagen- und Transaktions-E-Mail-Tools akzeptiert wird.

Authentifizierte Bildbytes werden immer in den von SEQUENZY_API_URL konfigurierten Ursprung hochgeladen, selbst wenn ein Reverse-Proxy eine äquivalente Upload-URL unter einem anderen Host zurückgibt. API-Anmeldeinformationen werden niemals an diesen alternativen Ursprung weitergeleitet.

{
  "filePath": "/Users/me/Desktop/product-results.png",
  "altText": "Product results dashboard",
  "displayWidthPercent": 100,
  "cropHeight": 320,
  "objectFit": "cover",
  "align": "center"
}

Listen, Tags, Segmente

ToolBeschreibung
list_tagsListet alle Tags auf.
create_tagErstellt eine Tag-Definition mit einer optionalen Farbe.
update_tagAktualisiert eine Tag-Farbe.
delete_tagLöscht ein Tag und entfernt es von Abonnenten.
list_listsListet Abonnentenlisten auf.
create_listErstellt eine Abonnentenliste.
update_listBenennt eine Abonnentenliste um oder beschreibt sie.
delete_listLöscht eine Abonnentenliste.
add_subscribers_to_listFügt bis zu 500 Abonnenten zu einer Liste aus einem E-Mail-Array hinzu.
remove_subscribers_from_listEntfernt bis zu 500 Abonnenten aus einer Liste.
list_segmentsListet gespeicherte Segmente und Zählungen auf.
create_segmentErstellt verschachtelte oder gleich-elementige array-gefilterte Segmente.
update_segmentAktualisiert Segmentname, Filter, Stammgruppe oder Verknüpfungsoperator.
delete_segmentLöscht ein Segment (erfordert segments:delete).
get_segment_countZeigt eine Vorschau der aktiven Abonnentenzahl für ein Segment an.

Für Abonnentenexporte akzeptiert search_subscribers listId, exakte listName oder list (ID zuerst, dann exakter Name). Es akzeptiert auch attribute plus attributeValue, mit attributeOperator für contains, numerische Vergleiche oder is_not_empty; die kombinierte "attributeName:value"-Form bleibt unterstützt. Filter kombinieren mit UND; verwenden Sie ein gespeichertes Segment für ODER-Logik, verschachtelte Gruppen, Ausschlüsse, Engagement oder Ereignisbedingungen. Wenn limit weggelassen wird, ruft das Tool automatisch jede übereinstimmende Seite ab. Für blockweise Lesevorgänge übergeben Sie limit und folgen Sie pagination.nextCursor (oder pagination.nextOffset), während hasMore wahr ist. offset und page werden unter 1.000.000 übersprungenen Übereinstimmungen unterstützt; verwenden Sie den Cursor für tiefere Zielgruppen.

Für die Massenlistenpopulation verwenden Sie add_subscribers_to_list; der zugrunde liegende API-Endpunkt ist POST /api/v1/lists/{listId}/subscribers ohne /bulk-Suffix:

{
  "emails": ["ada@example.com", "grace@example.com"],
  "duplicateStrategy": "skip",
  "enrollInSequences": false,
  "optInMode": "default"
}

Senden Sie höchstens 500 E-Mails pro Anfrage. Standard-API-Ratenlimits gelten weiterhin: 100 Anfragen pro Minute pro API-Schlüssel und 20 Anfragen pro Sekunde Burst. Für CSV-gesteuerte CLI-Importe umfassen akzeptierte E-Mail-Header email, e-mail, email address und mail; wenn kein erkannter Header vorhanden ist, liest die CLI die erste Spalte.

Segmentfilter unterstützen Attribute, Ereignisse, gespeicherte Segmentmitgliedschaft, Engagement-Ereignisse, Stripe-Produktkaufregeln und Commerce-Produktkaufregeln. Verwenden Sie filterJoinOperator: "or" für Match-Any-Segmente oder übergeben Sie eine v2 root-Gruppe für verschachtelte Logik.

Für Array-von-Objekten-Attribute verwenden Sie Wildcard-Pfade wie history_events[].eventvenue_id:2103. Wenn eine UND-Gruppe auch history_events[].showing_date filtert, müssen beide Bedingungen ein gemeinsames history_events[]-Element erfüllen; Werte aus nicht zusammenhängenden Verlaufseinträgen werden nicht kombiniert. Das Löschen eines Segments erfordert segments:delete; segments:write ist nicht ausreichend.

Jedes Segmentfilterfeld validiert seine eigenen Operatoren:

  • status, segment: is, is_not
  • tag: contains, not_contains, is_empty, is_not_empty
  • email: contains, not_contains
  • emailProvider, list: is, is_not, is_empty, is_not_empty
  • firstName, lastName: contains, not_contains, is_empty, is_not_empty
  • added: less_than, more_than
  • attribute: is, is_not, is_empty, is_not_empty, gte, lte, gt, lt, contains, not_contains
  • event, E-Mail-Engagement-Felder: is, is_not, at_least, less_than_count
  • emailBounced: unterstützt auch is_temporary_bounce, is_permanent_bounce
  • stripeProduct: is, is_not, at_least, less_than_count
  • stripeCurrentProduct, stripeTrialProduct: is, is_not, gte, lte, gt, lt
  • commerceProduct: is, is_not, at_least, less_than_count

Beispiele für Stripe-Produktfilter:

{ "field": "stripeProduct", "operator": "is", "value": "prod_pro" }
{ "field": "stripeProduct", "operator": "is_not", "value": "prod_pro" }
{ "field": "stripeProduct", "operator": "at_least", "value": "prod_pro:3" }
{ "field": "stripeProduct", "operator": "less_than_count", "value": "prod_pro:3" }

Commerce-Produktfilter entsprechen Produkten, die über Commerce-Bestellungen gekauft wurden. Werte können provider:productId für anbieterbezogene IDs (shopify, woocommerce oder api), eine nackte Produkt-ID zum Abgleichen mit jedem Anbieter oder provider:productId:count für Schwellenoperatoren sein:

{ "field": "commerceProduct", "operator": "is", "value": "api:starter-kit" }
{ "field": "commerceProduct", "operator": "at_least", "value": "shopify:42:2" }

Engagement-Felder wie emailSent, emailDelivered, emailOpened, emailClicked, emailBounced und emailComplained akzeptieren rollierende Fenster wie 7d, 30d, 90d, 180d oder all. Präsenzoperatoren können nach Zustellrichtlinie mit marketing:<timeRange> (Marketing-Richtlinienkampagne, Automatisierung und Send-API-Datenverkehr) oder transactional:<timeRange> (Transaktionsrichtlinien-Sendungen) eingegrenzt werden; Richtliniengrenzen erfordern eine Sendzeit-Richtlinien-Snapshot, sodass mehrdeutige ältere Automatisierungs- und Send-API-Ereignisse nur über uneingegrenzte Filter verfügbar bleiben. emailBounced unterstützt auch eingegrenzte Werte mit is_temporary_bounce und is_permanent_bounce. Mit at_least und less_than_count verwenden Sie count:timeRange, wie 10:30d oder 10:all. Präsenzoperatoren können stattdessen einen Kampagnenbereich wie campaign:cmp_123 verwenden; Kampagnen- und E-Mail-Typ-Bereiche können nicht mit Zähloperatoren kombiniert werden.

Zielgruppensynchronisierungen (Meta Ads)

ToolBeschreibung
list_audience_syncsListet Segment-zu-Zielgruppen-Synchronisierungen mit Zeitplan und letztem Synchronisierungsstatus auf.
list_ad_accountsListet die für die Synchronisierung verfügbaren Meta-Werbekonten auf.
create_audience_syncÜberträgt ein Segment nach Zeitplan an eine Meta-Benutzerdefinierte Zielgruppe.
update_audience_syncÄndert die Synchronisierungshäufigkeit (hourly, daily, weekly) oder pausiert/fortgesetzt.
delete_audience_syncEntfernt eine Synchronisierungszuordnung; die Meta-Zielgruppe selbst bleibt erhalten.
sync_audience_nowLöst einen sofortigen Upload außerhalb des regulären Zeitplans aus.

Erfordert, dass die Meta-Ads-Integration im Sequenzy-Dashboard verbunden ist (Einstellungen -> Integrationen). create_audience_sync akzeptiert ein bestehendes Segment (segmentId) oder eine fertige Vorlage (predefinedSegmentId, zum Beispiel zero-ltv, no-purchase-1y, recent-buyers, high-spenders-ecom, non-buyers, engaged) – das Vorlagensegment wird bei der ersten Verwendung automatisch erstellt, und der erste Upload läuft sofort.

Zielgruppen sind nur hinzufügend: Abonnenten, die später das Segment verlassen, bleiben in der Meta-Zielgruppe. Meta erfordert 100+ übereinstimmende Personen, bevor eine Zielgruppe für die Anzeigenzustellung verwendet werden kann.

Vorlagen

ToolBeschreibung
list_templatesVorlagen mit Lokalisierungsstatus, Label und isTemplate-Filterung sowie Paginierung auflisten.
get_templateVorlagendetails, Inhalt und lokalisierte Varianten lesen.
create_templateVorlagen aus einem Prompt, HTML oder Sequenzy-Blöcken erstellen; mit isTemplate: true ein wiederverwendbares Master-Design speichern.
update_templateVorlagenmetadaten, Inbox-Vorschau-Text, Labels, HTML oder Blöcke aktualisieren; ein Master mit isTemplate markieren oder die Markierung aufheben.
set_template_localizationEine vom Aufrufer bereitgestellte lokalisierte Variante erstellen oder ersetzen.
sync_template_localizationsKI-Übersetzung für ausgewählte oder alle aktivierten Nicht-Primär-Sprachen in die Warteschlange stellen.
delete_templateEine Vorlage löschen.

list_templates gibt standardmäßig 50 E-Mail-Inhalte in neuester Reihenfolge zurück und akzeptiert einen limit bis zu 100. offset um pagination.count weiterblättern, während pagination.hasMore wahr ist; pagination.total meldet die vollständige Anzahl der Übereinstimmungen, einschließlich Kampagnen- und Transaktions-E-Mail-Inhalten.

Setzen Sie isTemplate: true auf list_templates, um nur gespeicherte Master-Designs zurückzugeben, oder false, um normale E-Mail-Inhalte zurückzugeben. Markierte Master werden als Ausgangspunkte für Dashboard-Sequenzschritte und Kampagnen angeboten; wenn Sie mit einem beginnen, wird eine unabhängige Kopie erstellt, sodass Bearbeitungen das Master unverändert lassen.

Das Kopieren von eigenständigen/Sequenz-Quelldesigns und die KI-Neufassung innerhalb eines ausgewählten Layouts sind derzeit nur im Dashboard verfügbar. Dieses Release belässt diese Arbeitsabläufe bewusst in der interaktiven Erstellung, wo Benutzer die Quelle, Übersetzungen und etwaige Fallback-Kopien überprüfen können, bevor sie einen Sequenzschritt speichern. REST, CLI und MCP bieten keine entsprechende eigenständige/Sequenz-Quelldesign-Operation an. create_template mit prompt generiert neue Inhalte, ohne ein bestehendes Layout zu bewahren; bereitgestelltes HTML oder Blöcke erstellen einen neuen Inhalt, ohne lokalisierte Varianten automatisch zu kopieren. Siehe die Dokumentation zur Schnittstellenverfügbarkeit.

Kampagnenkopien funktionieren bereits über REST POST /api/v1/campaigns und MCP create_campaign mit templateId; es kann nicht mit prompt für eine KI-Neufassung kombiniert werden.

Für völlig neue Inhalte, die in natürlicher Sprache angefordert werden, übergeben Sie prompt, damit Sequenzy markenkonforme native Blöcke serverseitig generiert. Verwenden Sie blocks nur für fertige vom Aufrufer bereitgestellte Sequenzy-Inhalte und html nur, wenn bereitgestelltes oder ausdrücklich angefordertes Markup erhalten bleiben soll. prompt, blocks und html schließen sich gegenseitig aus; style und tone sind nur mit prompt gültig.

Verwenden Sie set_template_localization, wenn übersetzte Kopien aus Ihrem eigenen Lokalisierungs-Workflow stammen. Es erfordert eine aktivierte Nicht-Primär-locale, eine lokalisierte subject und genau eines von html oder blocks. Verwenden Sie sync_template_localizations, um Sequenzy zu bitten, ausgewählte Sprachen zu übersetzen; lassen Sie locales weg, um jede aktivierte Nicht-Primär-Sprache zu synchronisieren. Explizite Synchronisierung funktioniert auch, wenn die automatische Lokalisierung beim Speichern deaktiviert ist.

Wiederverwendbare E-Mail-Komponenten

ToolBeschreibung
list_email_componentsGespeicherte Abschnitte und Fußzeilen auflisten, optional auf angeheftete Standardwerte begrenzt.
get_email_componentBlöcke, Metadaten, Version und Standard-Slot-Zustand einer Komponente lesen.
get_default_email_componentDie Komponente lesen, die derzeit an einen Standard-Slot wie footer angeheftet ist.
set_default_email_componentDie Unternehmens-Standardfußzeile erstellen oder ersetzen, die von neu erstellten Block-E-Mails verwendet wird.
create_email_componentEinen wiederverwendbaren Abschnitt oder eine Fußzeile aus einer Blockliste speichern.
update_email_componentKomponentenmetadaten aktualisieren oder ihre Blöcke ersetzen und ihre Version erhöhen.
delete_email_componentEine Komponente löschen, ohne E-Mails zu ändern, die ihre Blöcke bereits kopiert haben.

Komponenten werden beim Erstellen dieser E-Mails in E-Mails kopiert, sodass spätere Bearbeitungen neu erstellte E-Mails betreffen, anstatt vorhandene Inhalte neu zu schreiben. Die Standard- fußzeile behält ihren Abmeldelink aktiviert, während die Transaktionsdarstellung diesen Link ausblendet. Rohe HTML-E-Mails behalten ihr eigenes Markup und erhalten keine Block- komponenten; ihre Abmeldeprozesse zum Sendezeitpunkt bleiben unverändert.

A/B-Tests

ToolBeschreibung
list_ab_testsA/B-Tests und Varianten auflisten, optional nach Sequenz eingegrenzt.
get_ab_testEffektive Einstellungen, Varianten, Lokalisierungsstatus und Sequenzschritt-Kopie abrufen.
get_ab_test_statsAggregierte und variantenspezifische Statistiken abrufen.
restart_ab_testEinen gestoppten oder abgeschlossenen A/B-Test neu starten.
select_ab_test_winnerEinen Kampagnentest-Gewinner auswählen und die verbleibende Zustellung in die Warteschlange stellen.
update_ab_testEinstellungen zur Kampagnen- oder Sequenz-Gewinnerauswahl aktualisieren.
update_ab_test_variantKampagnenentwurf oder Sequenzvarianten-Kopie aktualisieren.
create_ab_testEinen Kampagnentest erstellen oder einen Sequenz-E-Mail-Schritt konvertieren.
add_ab_test_variantEine Variante zu einem bestehenden A/B-Test hinzufügen.
delete_ab_test_variantEine Entwurfs-A/B-Testvariante löschen.
delete_ab_testEinen A/B-Test löschen.

Verwenden Sie get_sequence.sequence.emails[].abTest.variants, um Sequenzvarianten-IDs, Betreffe, Vorschau-Texte und Blockanzahlen zu ermitteln; rufen Sie get_ab_test auf, um die vollständige blocks, effektive settings, den Lokalisierungsstatus oder Statistiken jeder Variante zu prüfen. Kampagneneinstellungen verwenden testPercentage, testDurationMinutes und winnerCriteria; Sequenzeinstellungen verwenden testType, winnerThreshold und winnerCriteria. Die alten Sequenzwerte testPercentage: 100 und testDurationMinutes: 0 sind Kompatibilitätssentinellen, keine Laufzeiteinstellungen. select_ab_test_winner gilt nur für einen Kampagnentest, der derzeit läuft, und stellt die Gewinnervariante sofort für die verbleibende Zielgruppe in die Warteschlange. update_ab_test ändert das entsprechende Einstellungsmodell und erfordert confirmLiveChange: true, wenn Sequenzeinstellungen einen aktiven oder bereits verwendeten Test betreffen. Variantenaktualisierungen akzeptieren entweder html oder blocks, nicht beides.

create_ab_test akzeptiert genau eines von campaignId oder automationNodeId; letzteres erfordert ein bis vier zusätzliche Varianten und konvertiert einen Sequenz-E-Mail-Knoten in action_ab_test. Die Konvertierung verschiebt den Betreff, den Vorschau-Text und die Blöcke des Schritts auf unabhängige Varianten-E-Mails. Rufen Sie die Test- und Varianten-IDs von get_sequence ab, lesen Sie die Kopie jeder Variante mit get_ab_test und bearbeiten Sie jede mit update_ab_test_variant; update_sequence_node und update_template können Variantenkopien nicht bearbeiten, und eine Änderung, die für den gesamten Schritt gedacht ist, muss für jede Variante wiederholt werden. Wenn update_ab_test_variant nicht in der MCP-Tool-Liste ist, aktivieren Sie es auf dem Sequenzy-Connector, anstatt über ein anderes E-Mail-Tool zu schreiben. Der vollständige Arbeitsablauf erfordert ab_tests:read, ab_tests:write und sequences:write, die alle in Sicherer Agentenzugriff enthalten sind. Mit nur sequences:read hält get_sequence den A/B-Schritt und die Kontrollkopie sichtbar, redigiert jedoch Testdatensatzfelder und gibt eine leere Variantenliste zurück. Eine explizite Sequenz-winnerCriteria überschreibt den testType-Standard, sodass Inhaltsvarianten weiterhin anhand von Öffnungen beurteilt werden können. Übergeben Sie confirmLiveChange: true beim Konvertieren eines Knotens in einer aktiven Sequenz. Zusammen mit Kontrolle A unterstützt ein A/B-Test höchstens fünf Varianten. Sequenzvarianten erhalten unabhängige E-Mail-Vorlagen und können nach der Erstellung bearbeitet werden; sobald die Sequenz aktiv ist oder der Test Aktivität aufweist, erfordert update_ab_test_variant confirmLiveChange: true. Varianten können nur hinzugefügt oder entfernt werden, während der Test ein Entwurf ist, und Änderungen an Live-Sequenzen erfordern ebenfalls eine Bestätigung, da sie die Rotation sofort ändern.

Kampagnen

ToolBeschreibung
list_campaignsPaginierte Kampagnen nach Status oder Label auflisten, einschließlich Prüfer-Feedback und Zustellungs-Tempo-Feldern für unternehmensweite STO-Audits.
get_campaignDetails, Statistiken, Prüfer-Feedback und aufgezeichnetes Zustellungs-Tempo für eine Kampagne abrufen.
get_campaign_audienceGespeicherte Zielgruppenauswahl, fehlende Referenzen, eine Zusammenfassung in einfacher Sprache und die aktuelle Empfängerzahl auflösen.
list_campaign_goalsDie für eine E-Mail-Kampagne gespeicherten Conversion-Ziele auflisten (SMS wird nicht unterstützt).
create_campaign_goalEin Conversion-Ziel für E-Mail-Kampagnen hinzufügen (Ereignis, Abonnentenattribut oder Tag-Zuweisung).
update_campaign_goalEin gespeichertes Conversion-Ziel für E-Mail-Kampagnen aktualisieren.
delete_campaign_goalEin gespeichertes Conversion-Ziel für E-Mail-Kampagnen löschen.
list_email_sendsDen aktuellen Zustellungsverlauf mit Ressourcen-IDs und URLs durchsuchen, optional auf einen Sequenzschritt begrenzt. Erfolgreiche Live-Test-Sendungen werden ausgelassen.
get_email_sendEine in der Warteschlange befindliche, Test-, gesendete, unterdrückte oder fehlgeschlagene Zustellung anhand der dauerhaften E-Mail-Sende-ID prüfen.
list_recipient_suppressionsZugehörige unterdrückte Empfänger auflisten, einschließlich geschützter global ungültiger Adressen und Beschwerden.
get_recipient_suppressionLokale Bounce-, Beschwerde-, E-Mail-Hygiene- und regionale SES-Unterdrückung für einen einzelnen Empfänger prüfen.
remove_recipient_suppressionEine Soft-Bounce-Eskalation im Workspace entfernen, während globale, Hard-Bounce- und Beschwerde-Schutzmechanismen erhalten bleiben.
create_campaignEine Kampagne mit Inhalt, Daten und optionalen From/Reply-To-Identitätsüberschreibungen erstellen.
update_campaignEine Entwurfskampagne aktualisieren, einschließlich Inhalt, Daten, Identitäten, Zielgruppe und gespeicherter STO-Konfiguration.
schedule_campaignEine Kampagne planen oder neu planen, optional mit Überschreibung von STO und dessen 1-24-Stunden-Zustellungsfenster.
send_test_emailEine Test-E-Mail an eine Adresse senden.
render_emailExaktes E-Mail-sicheres HTML rendern und unaufgelöste Tags melden, einschließlich Tippfehlern, die durch Standardwerte verborgen sind.
cancel_campaignEine geplante oder sendende Kampagne abbrechen.
pause_campaignEine sendende Kampagne pausieren.
resume_campaignEine pausierte Kampagne fortsetzen, optional mit zeitlicher Verteilung der Zustellung.
delete_campaignEine Kampagne löschen.
duplicate_campaignEine Kampagne in einen neuen Entwurf duplizieren.
resend_campaign_to_non_openersEinen Entwurf für erneutes Senden an die ursprünglichen Empfänger erstellen, die eine gesendete Kampagne nicht geöffnet haben.

Prompt-erstellte Kampagnen werden in einer einzigen API-Anfrage generiert und gespeichert und bleiben Entwürfe. Verwenden Sie templateId, blocks oder html nur beim Kopieren oder Bewahren vorhandener Inhalte, nicht wenn der Agent Inhalte erstellen soll. Lassen Sie alle Inhaltsfelder weg, um einen leeren Entwurf für spätere Bearbeitung zu erstellen.

Kampagnenziele schreiben Empfängern gut, die diese Kampagne tatsächlich innerhalb des konfigurierten Attributionsfensters gesendet bekamen; ein Öffnen oder Klick bleibt das stärkere Last-Touch-Signal, wenn eines existiert. Ereignisziele erfordern triggerEventName, Abonnentenattribut-Ziele erfordern attributePath und Tag-Zuweisungsziele erfordern triggerTagName. Das Kampagnen-Attributionsfenster beträgt standardmäßig 168 Stunden, wenn es weggelassen wird.

Um zur gleichen Wanduhrzeit in der jeweiligen Zeitzone jedes Empfängers zuzustellen, rufen Sie schedule_campaign mit sendInRecipientTimezone: true und einer IANA- scheduledTimezone auf, die die durch scheduledAt dargestellte Wanduhr identifiziert. Kontakte ohne gespeicherte Zeitzone erhalten die Kampagne zum scheduledAt-Zeitpunkt. Dieser Modus kann nicht mit wiederkehrender oder verteilter Zustellung kombiniert werden.

Die Sendzeit-Optimierung wird pro Kampagne konfiguriert, nicht auf Unternehmens- oder Sequenzebene. Prüfen Sie sie kampagnenübergreifend mit list_campaigns oder prüfen Sie eine einzelne Kampagne mit get_campaign. Setzen Sie sendTimeOptimization und sendTimeWindowHours (1-24, Standard 12) auf einem Entwurf mit update_campaign oder überschreiben Sie sie beim Planen mit schedule_campaign. spreadOverHours hat Vorrang und deaktiviert STO, ebenso wie die Zustellung in der Empfängerzeitzone. Sequenzen verwenden stattdessen sendingWindow, ein gemeinsames Gate für erlaubte Stunden/Tage und nicht vorhergesagte Sendezeiten pro Empfänger.

Für Identitäten auf Kampagnen- und Sequenzebene wählt fromEmail plus fromName die Absenderidentität mit diesem Anzeigenamen auf dem Postfach aus und erstellt sie bei Bedarf, ohne andere Identitäten mit derselben Adresse umzubenennen. Eine Reply-To-Adresse hat stattdessen einen unternehmensweiten gespeicherten Namen: Wenn sich replyToName von diesem Namen unterscheidet, wird der gespeicherte Name beibehalten und die erfolgreiche Antwort enthält Wiederherstellungsanleitung in warnings.

send_email und send_test_email geben eine dauerhafte emailSendId zurück. Verwenden Sie list_email_sends, um aktuelle IDs nach Betreff/Titel, Empfänger, Zustellungsstatus, Typ, Bounce-Typ oder Quelle zu finden; übergeben Sie eine ID an get_email_send, um status, errorMessage, den gespeicherten Inhalt und Zustellungsereignisse zu prüfen. Zustellungslisten- Zeilen werden 14 Tage lang aufbewahrt. Erfolgreiche Live-Test- und andere Test-Sendungen werden ausgelassen, damit sie echte Zustellungen nicht überlagern. Antworten auf diese Test-Sendungen erscheinen in list_conversations nur, wenn die Erfassung eingehender Antworten aktiviert ist. Warteschlangenaufträge sind interne Ausführungsdetails und werden nicht über den MCP-Vertrag bereitgestellt. Jede zurückgegebene Zustellung hat einen direkten Dashboard-url. Verwenden Sie list_recipient_suppressions, um geschützte globale ungültige Empfänger-, geschützte Unternehmens-Hard-Bounce- und Beschwerdezeilen von entfernbaren Unternehmens-Soft-Bounce- Eskalationen zu unterscheiden, und verwenden Sie get_recipient_suppression für den genauen regionalen Status. remove_recipient_suppression entfernt nur die Unternehmens-Eskalation; globale und Amazon-SES-Kontoebenen-Unterdrückungen, Beschwerden, Abmeldungen und E-Mail-Hygiene- Schutzmechanismen bleiben intakt. Ein lokales Hygieneergebnis verwendet den bounced-Grund mit email_hygiene als Quelle, ohne den Einwilligungsstatus des Abonnenten zu ändern.

Agenten sollten eine aufrufer-eigene idempotencyKey an send_email vor dem ersten Versuch übergeben und sie für jeden Wiederholungsversuch derselben logischen E-Mail wiederverwenden. Sequenzy gibt die ursprüngliche emailSendId 14 Tage lang zurück, anstatt eine weitere Zustellung zu erstellen. Die Wiederverwendung des Schlüssels mit anderen Sendeargumenten wird abgelehnt, also generieren Sie keinen neuen Schlüssel innerhalb einer Wiederholungsschleife.

E-Mail-Blöcke können bedingte Anzeigeregeln oder conditional-group-Zweige verwenden. Bedingungen unterstützen Renderzeit-Variablen und Abonnentenattribute sowie Live- Abonnentendaten wie Segment/Listen-Mitgliedschaft, Tags, Ereignisse, Engagement, Abonnement/SMS-Status und Stripe- oder Commerce-Käufe. Live-Daten- Bedingungen verwenden dieselben Feldwerte und Operatoren wie Segmentfilter; Empfänger ohne gespeicherten Abonnenten-Match verwenden den OTHERWISE-Zweig.

Kernblockformen sind { "type": "heading", "content": "Title", "level": 1 }, { "type": "text", "content": "<p>Copy</p>" }, { "type": "button", "text": "Book a call", "url": "https://example.com", "variant": "primary" } , and { "type": "image", "src": "https://...", "alt": "Description", "width": 100, "widthType": "percent" }. Buttons also accept content als Alias für text und standardmäßig auf die primary-Variante. Bild-widthType akzeptiert percent oder px.

YouTube-Videoblöcke akzeptieren ein optionales benutzerdefiniertes Cover: { "type": "video", "videoUrl": "https://www.youtube.com/watch?v=...", "thumbnailUrl": "https://cdn.example.com/cover.jpg", "alt": "Watch the product tour" }. Das Ersetzen von Blöcken ohne thumbnailUrl stellt YouTube's eigenes Standbild wieder her, während videoUrl als Klickziel erhalten bleibt.

Rohes html wird als ein undurchsichtiger Block gespeichert. Es bewahrt bereitgestelltes Markup, fügt aber kein Firmenlogo, native Markenabschnitte oder themengetriebenes Blockdesign hinzu. Verwenden Sie prompt für einen neuen Markenentwurf oder blocks für editor-natives Design; MCP- Authoring-Ergebnisse enthalten eine Warnung, wenn rohes HTML verwendet wird.

Verwenden Sie update_company mit fromEmail und/oder replyTo, um unternehmensweite Standardwerte festzulegen. fromEmail muss eine konfigurierte, verifizierte Absendedomain verwenden; replyTo kann ein beliebiges gültiges Postfach sein. create_campaign, update_campaign, create_sequence und update_sequence akzeptieren dieselben Direktadressfelder für ressourcenspezifische Überschreibungen und erstellen das zugrunde liegende Profil bei Bedarf. Senden Sie fromName oder replyToName allein, um das vorhandene Standardprofil umzubenennen, ohne seine Adresse zu ändern. Wenn eine Adresse mehrere Anzeigenamen hat, verwenden Sie senderProfileId oder replyProfileId aus list_sender_profiles, um das genaue Profil auszuwählen, das zum Standard gemacht und umbenannt werden soll.

update_company verwaltet auch das Standard-E-Mail-Theme des Unternehmens über emailTheme (presetId, colors, typography, layout). Theme-Aktualisierungen sind teilweise - weggelassene Felder behalten ihren aktuellen Wert (oder den Preset-Standard) und numerische Werte werden auf unterstützte Bereiche begrenzt. Übergeben Sie emailTheme: null, um das Unternehmen auf das Plattform-Standardtheme zurückzusetzen. Layouteinstellungen können die gemeinsame baseRadius und eine separate buttonRadius steuern. Innerhalb von colors, malt background die äußere Leinwand, content malt die innere Inhaltskarte, und surface malt verschachtelte Karten oder getönte Kacheln. Das Weglassen von content bewahrt seinen aktuellen Wert; wenn keine Inhaltsfarbe gespeichert ist, folgt die Karte background.

Antwortverfolgung ist auf denselben Unternehmenswerkzeugen verfügbar. Verwenden Sie replyTrackingEnabled, replyTrackingDomainMode (sequenzy oder custom) und forwardReplies mit update_company. Unternehmenslesevorgänge geben auch den aktuellen schreibgeschützten replyRetentionDays-Wert zurück.

Umfragen und NPS-Umfragen sind native E-Mail-Blöcke, daher funktionieren sie überall dort, wo ein E-Mail- Werkzeug blocks akzeptiert, einschließlich Kampagnen, Vorlagen, A/B-Varianten, transaktionalen Vorlagen und Sequenz-E-Mail-Schritten. Transaktionale Umfrage-Sendungen müssen nach Unterdrückungsfilterung und Empfänger-Deduplizierung genau einen effektiven Empfänger auflösen, und dieser Empfänger muss bereits als Abonnent existieren; andernfalls lehnt Sequenzy die Sendung ab, da der Antwortlink nicht sicher attribuiert werden kann. Verwenden Sie eine Antwort-Button-Umfrage:

{
  "type": "poll",
  "variant": "options",
  "question": "What did you think of this email?",
  "options": [
    { "label": "Loved it", "value": "loved" },
    { "label": "Not for me", "value": "not_for_me" }
  ],
  "attributeKey": "email_feedback"
}

Für NPS verwenden Sie "variant": "nps", ein leeres options-Array und ein Attribut wie nps_score. Die Skala reicht immer von 0 bis 10; optionale npsLowLabel und npsHighLabel passen deren Beschriftungen an. Jede Antwort aktualisiert das Abonnentenattribut und löst poll.answered für Automatisierungen und ausgehende Webhooks aus.

Setzen Sie "allowMultiple": true bei einer reinen Textumfrage, um eine gehostete Seite zu öffnen, auf der Empfänger mehrere Antworten auswählen und die gesamte Auswahl auf einmal speichern können. Das Abonnentenattribut speichert die Liste der ausgewählten Werte, daher sollten Attributsegmente contains verwenden. Mehrfachauswahl-Umfragen können keine Optionsbilder oder Konfigurationen verwenden, deren codierte signierte Links das zustellbare Größenlimit überschreiten. Kampagnen-Umfragezusammenfassungen setzen allowMultiple: true, verwenden die Befragtenanzahl für totalResponses und können Antwortprozentsätze melden, die über 100 % hinausgehen.

Umfrageblöcke unterstützen auch markenspezifisches Styling. accentColor färbt jedes Erscheinungsbild neu ein, einschließlich "brutal"; optionRadius setzt die Ecken der Antwortschaltflächen in Pixel (0 ist quadratisch), unabhängig von der styles.borderRadius des Containers; und questionColor färbt nur die Frage neu ein. fontFamily gilt für die Umfrage. Verwenden Sie die Felder optionFontSize, optionFontWeight, optionLetterSpacing und optionTextTransform für Antworten oder die entsprechenden question*-Felder für die Frage. Größen und Abstände sind in Pixel angegeben, Schriftgewichte reichen von 100 bis 900 und Texttransformationen sind "none" oder "uppercase".

Gespeicherte Formulare

ToolBeschreibung
list_formsListet gespeicherte Formulare mit ihren serververwalteten Zielgruppeneinstellungen, Inhaltsblöcken und öffentlichen Aktions-URLs auf.
create_formErstellt und veröffentlicht ein gespeichertes Formular mit Standardfeldern für E-Mail/Name, Zielgruppeneinstellungen, Design und Erfolgsverhalten.
update_formAktualisiert ein gespeichertes Formular, einschließlich seines vollständigen geordneten Block-Arrays und typisierten benutzerdefinierten Feldern.
get_form_embedGibt die öffentliche Aktions-URL, gehostetes JavaScript, minimales natives Formular und ein Fetch-Beispiel für ein gespeichertes Formular zurück.

Für Astro, Hugo, Jekyll, Cloudflare Pages, Netlify, GitHub Pages oder jede andere statische Website rufen Sie list_forms auf, verwenden Sie create_form, wenn kein geeignetes Formular existiert, und rufen Sie dann get_form_embed auf. Das zurückgegebene undurchsichtige formId ist die öffentliche Fähigkeit: Listen, Tags, Duplikatverhalten und Erfolgsbehandlung bleiben serverseitig, sodass der bereitgestellte Browser-Code niemals einen Sequenzy-API-Schlüssel enthält. Generiertes natives und eigenständiges Markup enthält „Powered by Sequenzy“ für kostenlose Arbeitsbereiche; kostenpflichtige Arbeitsbereiche erhalten Markup ohne Branding. Die API löst diese Berechtigung serverseitig auf, daher sollten Aufrufer das zurückgegebene Snippet unverändert verwenden. Beim Aktualisieren eines Formulars bleiben ausgelassene Felder unverändert und Designfelder werden in das aktuelle Design eingefügt. Übergeben Sie ein leeres tagIds-Array, um Tags zu löschen, oder ein leeres redirectUrl, um das Verhalten der Bestätigungsnachricht wiederherzustellen. Das Feld blocks ist ein vollständiger Ersatz, daher lesen Sie zuerst den aktuellen Inhalt mit list_forms und behalten Sie genau ein erforderliches E-Mail-Feld und eine Senden-Schaltfläche bei. Fügen Sie benutzerdefinierte Eingaben als form-field-Blöcke mit einem unterstützten fieldType hinzu; Auswahl-, Radio- und Kontrollkästchenfelder erfordern Optionen, während versteckte Standardwerte serverseitig erzwungen werden.

Gespeicherte Popups

ToolBeschreibung
list_popupsListet gespeicherte Popups mit Status und Engagement-Statistiken auf, optional einschließlich vollständigem Inhalt.
get_popupRuft die Blöcke, den Auslöser, das Targeting, den Zeitplan, die Häufigkeit, das Design und den veröffentlichten Einbettungscode eines Popups ab.
create_popupErstellt ein Popup aus einer Startvorlage, standardmäßig veröffentlicht, und gibt dessen Bereitstellungsskript zurück.
update_popupAktualisiert teilweise Popup-Text, Zielgruppe, Verhalten, Design, Blöcke oder Veröffentlichungsstatus.
get_popup_embedGibt geheimnisfreie HTML-, React/Next.js-, WordPress- und Shopify-Einbettungs-Snippets zurück.
duplicate_popupKopiert ein Popup in einen Entwurf mit unabhängigen Engagement-Zählern.
delete_popupLöscht dauerhaft ein Popup und dessen Engagement-Zähler.

Die Popup-Bereitstellung verwendet ein öffentliches Skript-Tag; API-Schlüssel, Zielgruppeneinstellungen, Auslösung, Targeting, Zeitplanung und Häufigkeitsregeln bleiben serverseitig. Popups erfassen standardmäßig in jeder Liste, sofern listIds nicht angegeben ist. Beim Aktualisieren von Blöcken lesen Sie zuerst das Popup und senden das vollständige Ersatz-Array, wobei genau ein erforderliches E-Mail-Feld und eine Senden-Schaltfläche beibehalten werden. Das Setzen von status auf draft stoppt ein Popup, ohne dessen vorhandenen Einbettungscode ungültig zu machen.

Landing Pages

ToolBeschreibung
list_landing_pagesListet Landing Pages mit Status, Metriken, Inhalt und URLs auf.
get_landing_pageRuft Details, Builder-Inhalt, Metriken und veröffentlichte URLs einer Landing Page ab.
render_landing_pageGibt eine signierte 24-Stunden-Besuchervorschau zurück, ohne zu veröffentlichen, Ansichten zu zählen oder Anmeldungen zu sammeln.
create_landing_pageErstellt eine Entwurfs-Landing-Page aus Standardvorlageninhalt oder JSON.
update_landing_pageBearbeitet den Namen, den Slug oder den vollständigen editor-kompatiblen Inhalt einer Landing Page.
publish_landing_pageVeröffentlicht eine Landing Page, optional mit vorherigem Speichern von Änderungen.
unpublish_landing_pageSetzt eine Landing Page zurück auf Entwurfsstatus, optional mit vorherigem Speichern von Änderungen.
duplicate_landing_pageDupliziert eine Landing Page in einen neuen Entwurf mit einem eindeutigen Slug.
delete_landing_pageLöscht eine unveröffentlichte Landing Page.
connect_landing_page_domainVerbindet eine benutzerdefinierte Landing-Page-Domain und gibt DNS-Einrichtungsdetails zurück.
update_landing_page_domain_settingsErsetzt oder überprüft benutzerdefinierte Domain-Einstellungen einer Landing Page.

Der Inhalt von Landing Pages verwendet das editor-kompatible JSON-Schema von Sequenzy mit version, template, seo, theme und blocks. SEO-Einstellungen umfassen faviconUrl und hideFromSearchEngines; versteckte Seiten veröffentlichen eine noindex-Direktive. Verwenden Sie render_landing_page, um die aktuelle besucherorientierte Seite vor der Veröffentlichung zu überprüfen. Deren signiertes previewUrl läuft nach 24 Stunden ab, ist nicht gelistet, wird nicht indexiert und erhöht keine Seitenaufrufe; Formulare bleiben sichtbar, sammeln jedoch keine Kontakte. Blöcke werden in Slot-Reihenfolge gerendert: top, hero, form, body, dann footer; verwenden Sie top für eine vollbreite Ankündigung oder ein Banner über dem Hero. Button- und Preis-CTA-URLs akzeptieren externe HTTPS-Ziele oder In-Page- Anker wie #form, #section-<sectionId>, #block-<blockId> und #top. Setzen Sie theme.sectionAnimation auf none, fade, slide-up oder zoom-in, wobei theme.sectionAnimationSpeed auf slow, normal oder fast gesetzt ist, um veröffentlichte Scroll-Enthüllungen zu steuern. Benutzerdefinierte Landing-Page-Subdomains erfordern einen CNAME-Eintrag, der auf pages.sequenzydns.com zeigt; Root-Domains verwenden einen A-Eintrag, der auf 76.76.21.21 zeigt, und deren www-Host leitet zur Root um, wenn dessen CNAME auf pages.sequenzydns.com zeigt. Rufen Sie update_landing_page_domain_settings mit verify: true auf, nachdem sich DNS-Änderungen verbreitet haben.

Sequenzen

ToolBeschreibung
list_sequencesSequenzen mit Dashboard-Status auflisten, mit Suche, Label, Limit- und Offset-Filtern.
get_sequenceSequenzdetails abrufen, A/B-Varianten-IDs und Blockanzahlen mit ab_tests:read, Knoten, Kanten, verknüpften Texten und dem Sendezeitfenster der Sequenz.
list_sequence_enrollmentsKontakt-Einschreibungen mit Paginierung und korrekter Listen-/Tag-/Ereignis-/zeitbasierter Einstiegsattribution auflisten. Live-Sequenztests erzeugen keine Einschreibungen.
send_sequence_test_emailEinen gespeicherten action_email-Schritt an 1–10 Prüfer senden; A/B-Schritte werden pro Variante geprüft.
create_sequenceEinen leeren Dashboard-Entwurf oder eine KI-generierte/explizite Schritt-Sequenz erstellen.
update_sequenceIdentität, Einstellungen, Einschreibung, vorhandene Schritte, Verzweigungslogik aktualisieren oder lineare Schritte einfügen.
update_sequence_nodeTypbewusster Patch eines vorhandenen Sequenzknotens.
update_sequence_nodesAtomares Patchen mehrerer vorhandener Sequenzknoten.
insert_sequence_stepBeliebigen typisierten Dashboard-Schritt einfügen, einschließlich KI-Generierung, ausgehender Webhooks, Wartezeiten und verdrahteter Verzweigungen.
edit_sequence_graphGraphknoten verschieben, neu verbinden, löschen oder duplizieren; meldet verschobene oder abgeschlossene Empfänger.
simulate_sequenceTrockenlauf für aktuelle Übereinstimmungen, Aktivierungsbereitschaft und optional den Verzweigungspfad eines Kontakts ohne Einschreibung oder Versand.
enable_sequenceEine Sequenz aktivieren.
disable_sequenceEine Sequenz einfrieren, neue Einschreibungen blockieren und aktuelle Empfänger halten.
duplicate_sequenceEine unabhängige Entwurfskopie des Graphen, der E-Mails und der Sequenz-A/B-Tests erstellen.
archive_sequenceEine Sequenz in das Dashboard-Archiv verschieben und neue Einschreibungen stoppen.
unarchive_sequenceEine archivierte Sequenz als deaktivierten Entwurf wiederherstellen.
list_sequence_goalsDie für eine Sequenz gespeicherten Ereignis-, Abonnentenattribut- und Tag-Konversionsziele auflisten.
create_sequence_goalEin Ereignis-, Abonnentenattribut- oder Tag-Konversionsziel hinzufügen.
update_sequence_goalEin gespeichertes Sequenz-Konversionsziel aktualisieren.
delete_sequence_goalEin gespeichertes Sequenz-Konversionsziel löschen.
get_sequence_inbound_webhookEingehende URL, Einrichtungsstatus, Beispiel und Zuordnung auf Standard-MCP lesen; die OpenAI-Route entfernt die URL mit Anmeldedaten.
configure_sequence_inbound_webhookEndpunkt, Feldzuordnung und Beispiel konfigurieren; die OpenAI-Route entfernt die URL mit Anmeldedaten aus ihrem Ergebnis.
rotate_sequence_inbound_webhook_secretGeheimnis eines eingehenden Sequenz-Endpunkts rotieren und die Ersatz-URL auf Standard-MCP zurückgeben; in der OpenAI-geprüften Route ausgelassen.
pause_sequence_enrollmentsNeue Einschreibungen für eine aktive Sequenz stoppen, während aktuelle Empfänger fortfahren.
resume_sequence_enrollmentsNeue Einschreibungen für eine aktive Sequenz wieder öffnen, ohne aktuelle Empfänger zu ändern.
enroll_subscribers_in_sequenceBis zu 500 Abonnenten per E-Mail, Abonnenten-ID oder beidem einschreiben, mit wiederholungssicherer Idempotenz.
cancel_sequence_enrollmentsAktive oder wartende Einschreibungen nach Abonnenten- oder Einstiegsereignis-Feldwerten stoppen.
realign_sequence_enrollmentsVorschau oder Warteschlange zum Verschieben von Live-Wartezeiten auf den Beginn ihres Sendezeitfensters.
get_sequence_enrollment_realignmentEinen angewendeten Neuausrichtungsauftrag abfragen und sein abgeschlossenes Ergebnis oder den Fortsetzungscursor lesen.
delete_sequenceEine Sequenz löschen.

Die Sequenzerstellung unterstützt:

  • Nur-Namens-Erstellung für einen leeren, deaktivierten Trigger-bis-Abschluss-Entwurf, der dem Dashboard entspricht.
  • Dashboard-Metadaten und Zustellungseinstellungen: description, labels, userCancellable, Sequenz-BCC und Von/Antwort-an-Identität.
  • trigger: "contact_added" mit listId, mehreren listIds oder listScope: any_contact (Standard) schreibt jeden hinzugefügten Kontakt ein, einschließlich Kontakten, die keiner Liste beitreten, während any_list auf eine tatsächliche Listenmitgliedschaft wartet.
  • trigger: "tag_added" mit tagName oder mehreren tagNames; jedes konfigurierte Tag schreibt den Kontakt ein.
  • trigger: "segment_entered" plus segmentId für Automatisierungen mit gespeichertem Segment-Einstieg.
  • trigger: "event_received" plus {{event.*}} zum Zusammenführen von Tags in Betreffzeilen oder Textinhalten.
  • trigger: "inbound_webhook" plus Integrationsmetadaten für dashboard-kompatible Webhook-Einstiegsknoten.
  • trigger: "inactivity" plus eventName, inactiveDays und optionalem inactivityBaseline (sequence_created_at oder subscriber_created_at).
  • goal für KI-generierte E-Mail-Inhalte.
  • emailStyle: "visual" oder "plain" zur Auswahl der Darstellung zielbasierter KI-generierter E-Mails; wenn weggelassen, wird die gespeicherte Unternehmenspräferenz verwendet.
  • Explizites steps mit Sequenzy blocks.
  • Explizites steps mit HTML, das Sequenzy in bearbeitbare Blöcke umwandelt.
  • Explizite „Abonnenten aktualisieren“-Schritte, die Trigger-Ereigniseigenschaften in Profilfelder oder typisierte benutzerdefinierte Attribute kopieren.
  • Feste Wartezeiten über delay / delayMs, dynamische Datumsfeld-Wartezeiten über waitUntil oder Kalender-Gates über waitUntilWeekday. Ein Wochentags-Gate wie { "day": "sunday", "startTime": "09:00", "endTime": "12:00", "timezone": "America/Los_Angeles" } hält den Ablauf bis zum nächsten passenden Fenster. Platzieren Sie es unmittelbar vor einer E-Mail, um diesen Versand innerhalb des Fensters zu halten; jeder dazwischenliegende Schritt kann die Zustellung außerhalb verschieben. Die Warteschlangen-Wiederherstellung prüft das Fenster erneut, bevor ein verzögerter Kontakt freigegeben wird.
  • Dynamische Stripe- oder Shopify-Rabattaktionsschritte. Ein create_discount-Schritt erstellt einen neuen Anbietercode, wenn jeder Abonnent ihn erreicht; spätere E-Mails können Merge-Tags wie {{discount.code}}, {{discount.percentOff}} und {{discount.expiresAt}} verwenden.
  • enrollmentMode: "matching_field" und ein skalarer enrollmentFieldPath für produkt-, varianten-, bestell- oder abonnementbezogene Ereignisautomatisierungen. Array-Traversierung mit [] gehört in propertyFilters, nicht in den Einschreibungsschlüssel.

Für einen benutzerdefinierten Ereignis-Trigger enthält das erfolgreiche create_sequence-Ergebnis eventTrackingCode und ein strukturiertes eventTracking-Objekt. Das Objekt enthält den Ereignis-Endpunkt, den Identitäts- und Payload-Vertrag, jeden für die matching_field-Einschreibung erforderlichen Eigenschaftspfad, normalisierten Trigger propertyFilters, eine Beispiel-Payload, examplePayloadMatchesFilters, die direkte Ereignis-API-Dokumentations-URL und sofort verwendbare Argumente für get_integration_guide. Wenn der Übereinstimmungsstatus false ist, passen Sie das Beispiel mit examplePayloadNote und dem Payload-Vertrag an. Fügen Sie diesen Ereignis-Feed hinzu und verifizieren Sie seine erforderlichen Eigenschaften, bevor Sie die Entwurfssequenz aktivieren.

list_sequence_enrollments gibt enteredVia für jede Zeile zurück. Listen- und Segment- Quellen behalten ihre stabile ID in value und lösen eine Anzeige name auf; Tag- und Ereignisquellen behalten ihre Namen in value. Zeitbasierte Trigger melden inactivity oder frequency, anstatt fälschlich als gewöhnliche Empfangsereignis-Einschreibungen identifiziert zu werden. Live-Sequenztests erzeugen keine Einschreibungen; sie senden isolierte Test-E-Mails und zeichnen Aktivität im Sequenz-Testlauf auf stattdessen.

Für eine bestätigte manuelle Einschreibungs-Batch generieren Sie idempotencyKey einmal und verwenden Sie diesen exakten Schlüssel nur mit identischen geordneten Zielen und targetNodeId erneut. Belege bleiben 14 Tage gültig. Ein Wiederholungsversuch gibt die ursprünglichen enrolled, skipped, notFound, targetNodeId und scheduledFor-Werte mit idempotentReplay: true zurück; er erstellt keine Token oder stellt die Batch erneut in die Warteschlange.

Beispiel für dynamischen Shopify-Rabatt-Schritt:

{
  "type": "create_discount",
  "discount": {
    "provider": "shopify",
    "discountType": "percent",
    "percentOff": 20,
    "duration": "once",
    "appliesToAllPlans": true,
    "maxRedemptions": 1,
    "codePrefix": "WINBACK"
  }
}

Beispiel für „Abonnenten aktualisieren“-Schritt:

{
  "type": "update_subscriber",
  "nodeType": "action_update_attributes",
  "config": {
    "firstName": "{{event.firstName}}",
    "customAttributeUpdates": [
      { "name": "plan", "value": "{{event.plan}}", "valueType": "text" },
      { "name": "mrr", "value": "{{event.amount}}", "valueType": "number" },
      { "name": "active", "value": "{{event.active}}", "valueType": "boolean" }
    ]
  }
}

Zahlen- und Boolesche Werte müssen Literale oder ein einzelnes eigenständiges Merge-Tag sein. Verwenden Sie update_sequence.subscriberUpdateSteps mit einer action_update_attributes Knoten-ID aus get_sequence, um die Konfiguration eines vorhandenen Schritts zu ersetzen. Sequence-Updates unterstützen insertSteps zum Hinzufügen neuer linearer Schritte nach einem nodeId, der von get_sequence zurückgegeben wurde. Lassen Sie afterNodeId nur weg, wenn Sie an eine Sequenz mit genau einem linearen Ende anhängen. insertSteps unterstützt hinzufügbare Schritte, die keine Begleitsätze erfordern, wie E-Mail, Verzögerung, Tag/Listen-Aktionen, Attributaktualisierungen, Rabatte, Bedingungen, Warten-auf-Ereignis-Schritte, ausgehende Webhooks und KI-Schritte. Ein action_ai-Schritt erfordert ein Merge-Tag prompt, ein eindeutiges resultKey und ein oder mehrere outputFields; spätere Schritte lesen generierten oder Fallback-Text mit {{ai.KEY.field}}. Die kombinierten Ausgabefeld-Limits müssen in das 2000-Token-Antwortbudget des Schritts passen. Verwenden Sie includeTags, includeEventProperties oder includeAttributes, um bestimmten Kontaktkontext in die Generierung einzubeziehen, und onError (continue, exit oder fail), um das Fehlerverhalten zu wählen. Verwenden Sie branch für mehrpfadige If/Else-Verzweigungen; geben Sie entweder branch oder insertSteps an, nicht beides. Verzweigungsbedingungen unterstützen Tag-Vorhandenseins- und Abwesenheitsprüfungen mit has_tag und does_not_have_tag sowie Listen, gespeicherte Segmente, Ereignisse, geklickte Links und Feldvergleiche. Jeder Verzweigungspfad kann neue steps, ein vorhandenes targetNodeId oder beides bereitstellen; der Fallback verwendet elseSteps und/oder elseTargetNodeId. Ein Ziel kann der von get_sequence zurückgegebene Abschlussknoten sein, sodass eine atomare Anfrage Antworten an den Abschluss und Else an ein vorhandenes Follow-up weiterleiten kann. Die Arrays emails und steps bearbeiten gewöhnliche action_email-Schritte nach nodeId, emailId oder Array-Reihenfolge. get_sequence.sequence.emails enthält auch action_ab_test-Einträge; mit ab_tests:read enthält jeder abTest.variants[]-Eintrag die Varianten-ID, den Betreff, den Vorschautext und die Blockanzahl. Rufen Sie get_ab_test für vollständige Varianteninhalte auf, bevor Sie Texte prüfen oder umschreiben. Ein positionsbasiertes Update, das auf eine Variante trifft, wird abgelehnt, und sein Text muss pro Variante mit update_ab_test_variant geändert werden; versuchen Sie es nicht erneut über update_template oder update_sequence_node. Verwenden Sie insertSteps, um neue Schritte zu erstellen, und fügen Sie ein Schritt-Level-delay, delayMs, waitUntil oder waitUntilWeekday hinzu, wenn die eingefügte E-Mail einen Timer benötigt. waitUntil akzeptiert ein Datumsfeld aus dem Trigger-Ereignis plus optional offset, direction (before oder after) und missingAction (continue oder exit). waitUntilWeekday akzeptiert day oder days, startTime, optional endTime (Standard 24:00) und eine IANA-timezone; Kontakte, die sich bereits im Fenster befinden, werden sofort fortgesetzt. Für aktive Sequenzen übergeben Sie confirmStructuralChange: true mit insertSteps oder branch erst nach Bestätigung der Auswirkung auf den Live-Flow.

insert_sequence_step legt jeden Dashboard-Schritt ohne Begleitsatz direkt offen: E-Mail, SMS, Verzögerung, Rabatt, Abonnenten-Update, Tag/Listen-Aktion, ausgehender Webhook, KI-Generierung, Bedingung, Warten und Verzweigung. Setzen Sie type: "ai" mit prompt, resultKey und outputFields, um pro Kontakt Text für spätere {{ai.KEY.field}}-Merge-Tags zu generieren. Ausgehende Webhooks akzeptieren url, method (POST oder GET) und stringwertige headers. E-Mail-Schritte unterstützen transaktionalen Modus, Identität pro Schritt und CC/BCC-Zustellungseinstellungen. Für ein Warte-Gate setzen Sie type: "logic_wait_for_event" mit eventName, optional timeoutDays (1–365) und timeoutAction (continue oder exit). Für eine Verzweigung setzen Sie type: "logic_branch", geben Sie typisierte branches an und verdrahten Sie deren Ziele:

{
  "sequenceId": "seq_123",
  "type": "logic_branch",
  "afterNodeId": "node_email_1",
  "branches": [
    {
      "id": "replied",
      "conditionType": "event_received",
      "eventName": "email.replied",
      "activityScope": "this_sequence",
      "targetNodeId": "node_complete"
    }
  ],
  "elseTargetNodeId": "node_email_2"
}

Jede verknüpfte E-Mail, die von get_sequence zurückgegeben wird, enthält ihre effektive emailPreset (branded oder minimal), passend zu Stil > Format im Dashboard. Setzen Sie emailPreset auf einem emails/steps-Element oder in einem action_email-Knoten-changes, um nur diese verknüpfte E-Mail zu ändern, ohne das Unternehmensthema zu ändern. Dies wendet dieselbe Formattransformation wie das Dashboard auf native Sequenzy-Blöcke an, einschließlich E-Mails, die unterstützte benutzerdefinierte HTML-Blöcke enthalten. E-Mails, die vollständig als ein einzelner eigenständiger roher HTML-Block gespeichert sind, geben null für emailPreset zurück und unterstützen keine Formatänderungen. emailPreset kann nicht mit html oder htmlContent kombiniert werden, da diese Felder die gesamte E-Mail durch eigenständiges rohes HTML ersetzen.

Für die Sequenzposition bevorzugen Sie structuralStepNumber bei verknüpften E-Mails und auf der obersten Ebene von E-Mail-Knoten. Es wird aus dem aktuellen Graphen abgeleitet und entspricht dem Schritt-Badge, das im Dashboard angezeigt wird. Parallele Verzweigungs-E-Mails teilen absichtlich dieselbe strukturelle Tiefe, und eine ungleiche Verzweigungszusammenführung wird vom längeren eingehenden Pfad fortgesetzt. Das ältere stepNumber-Feld in verknüpften E-Mails und Knotenkonfigurationen bleibt ein gespeicherter Ordnungswert für Abwärtskompatibilität und kann nach Graphenbearbeitungen veraltet sein.

Jede verknüpfte E-Mail gibt auch ihren gespeicherten emailTheme-Override zurück, oder null, wenn sie dem Unternehmensthema folgt. Setzen Sie emailTheme auf einem emails/steps-Element oder in einem action_email-Knoten-changes, um nur diesen Schritt neu zu gestalten. Themenupdates sind partielle Patches, sodass changes: { "emailTheme": { "colors": { "background": "#f3f4f6", "content": "#ffffff" } } } dieser E-Mail eine graue äußere Leinwand und eine weiße Inhaltskarte gibt, während andere Farben, Typografie und Layout erhalten bleiben. Das Weglassen einer Farbe bewahrt ihren aktuellen Wert. Übergeben Sie emailTheme: null, um den Override zu entfernen und wieder dem Unternehmensthema zu folgen. Verwenden Sie update_company nur, wenn der kontoweite Standard geändert werden soll.

Verwenden Sie update_sequence_node für eine fokussierte In-Place-Bearbeitung oder update_sequence_nodes, wenn mehrere Knoten-Patches atomar committet werden müssen. Rufen Sie get_sequence zuerst auf: Jedes Element in sequence.nodes enthält den Knoten-id, nodeType, aktuelles config, updatedAt und updateHints mit bearbeitbaren und verwalteten Feldern sowie das genaue Nebenläufigkeitstoken, das zurückzugeben ist. Übergeben Sie dieses Token als expectedUpdatedAt, um veraltete Schreibvorgänge abzulehnen. Die Tools unterstützen jeden gespeicherten Knotentyp, einschließlich Verzögerungen, E-Mail/SMS-Inhalte, Aktionen, Bedingungen, Webhooks, Verzweigungskonfiguration ohne Topologieänderungen und Trigger. Um eine 5-Minuten-Verzögerung auf 7 Tage zu ändern, senden Sie changes: { "delay": { "days": 7 } } für ihren logic_delay-Knoten. Um mehrere Founder-Stil-Notizen auf Minimal zu setzen, patchen Sie deren action_email-Knoten mit changes: { "emailPreset": "minimal" }. Knotentypkonvertierung und Kanten/Pfadänderungen gehören zu edit_sequence_graph. Aktive Sequenzen erfordern confirmLiveChange: true, nachdem der Benutzer die Auswirkung bestätigt hat; Empfänger, die bereits warten, behalten ihren vorhandenen geplanten Zeitstempel.

Vorhandene und neu eingefügte E-Mail-Schritte können ihre eigene Von-Identität mit senderProfileId oder fromEmail plus optional fromName und ihre Antwort-an-Identität mit replyProfileId oder replyTo plus optional replyToName festlegen. Ein fromName für sich allein ändert nur den sichtbaren Absendernamen dieses Schritts. Ein Schritt-Level replyToName überschreibt ähnlich den sichtbaren Antwort-an-Namen für diesen Schritt, ohne das unternehmensweite Antwortprofil umzubenennen. Neue E-Mail-Schritte ohne explizite Identitätsfelder erben die effektive Identität der nächsten Sequenz-E-Mail. Nach einer Verzweigungszusammenführung werden nur Identitätsfelder geerbt, die von jedem eingehenden Pfad geteilt werden; widersprüchliche Felder verwenden die Sequenz- oder Unternehmensstandards.

Verwenden Sie edit_sequence_graph mit dem neuesten graphRevision von get_sequence, um eine vorhandene Sequenz atomar umzustrukturieren. Es kann einen Knoten vor oder nach einem anderen Knoten verschieben, das normalisierte sequence.edges-Array für explizite Neuverbindung oder Mehrknoten-Neuordnung wiederverwenden, einen Knoten löschen oder einen Knoten tief kopieren. Die Duplizierung von A/B-Tests erstellt unabhängige Test-, Varianten-, E-Mail- und Lokalisierungsdatensätze mit zurückgesetzter Statistik. Das Verschieben eines Knotens vor den gemeinsamen Knoten unterhalb einer Verzweigung verbindet jeden konvergierenden Verzweigungspfad durch diesen Knoten. Das Löschen eines Knotens verschiebt geparkte Empfänger sofort zu seinem eindeutigen überlebenden Nachfolger oder schließt sie ab, wenn kein Nachfolger mehr vorhanden ist; prüfen Sie sequence.migratedRecipientCount und sequence.completedRecipientCount im Ergebnis. Das Löschen wird abgelehnt, wenn geparkte Empfänger mehrere überlebende Fortsetzungen hätten. Veraltete Revisionen, ungültige Verzweigungsspuren, Zyklen und unerreichbare Knoten werden ebenfalls abgelehnt. Aktive Sequenzen erfordern confirmStructuralChange: true.

Führen Sie cancel_sequence_enrollments mit dryRun: true aus, bevor Sie Massenstornierungen anwenden.

Führen Sie realign_sequence_enrollments aus, nachdem Sie das Sendezeitfenster einer Live-Sequenz geändert haben, wenn vorhandene E-Mail-gebundene Wartezeiten früher zur neuen Öffnung verschoben werden sollen. Es standardisiert auf dryRun: true. Das Übergeben von dryRun: false stellt einen Hintergrundjob in die Warteschlange und gibt jobId zurück; pollen Sie ihn mit get_sequence_enrollment_realignment. Wenn ein abgeschlossenes Ergebnis hasMore: true hat, stellen Sie die nächste begrenzte Anwendung mit seinem nextCursor in die Warteschlange. Angewandte Neuausrichtungen ändern Live-Zustellzeiten und sollten nur verwendet werden, nachdem der Benutzer die Vorschau bestätigt hat.

E-Mail-Blöcke

ToolBeschreibung
get_email_block_schemaListen Sie jeden E-Mail-Blocktyp auf oder prüfen Sie die erforderlichen Felder, Enum-Werte, Elementformen und ein Beispiel eines Typs.

Rufen Sie get_email_block_schema auf, bevor Sie einen Blocktyp, den Sie noch nicht verwendet haben, manuell verfassen. Lassen Sie blockType weg, um jeden Typ aufzulisten, übergeben Sie einen Typ wie list oder steps für seine vollständige Referenz, oder übergeben Sie creatableOnly: true, um Typen auszublenden, die vom Editor verwaltet werden. Persistierte group-Blöcke sind struktureller Editor-Inhalt: Sie umschließen rekursiv untergeordnete Blöcke in Stack-, Row-, Grid- oder Single-Image-Overlay-Layouts, aber KI-Generierung und creatableOnly lassen sie absichtlich aus. Fordern Sie blockType: "group" an, um ihre Felder zu prüfen, wenn Sie vorhandene gruppierte Inhalte lesen oder aktualisieren. Listen sind ihr eigener Blocktyp und keine text-Variante: list-Elemente verwenden content, während steps-Elemente title und ein optionales description verwenden.

Tools, die blocks akzeptieren, persistieren pro Block visuelle Stile unter dem styles-Objekt eines Blocks:

{
  "type": "card",
  "title": "Your update",
  "content": "Everything is ready.",
  "variant": "default",
  "styles": {
    "backgroundColor": "#f8fafc",
    "backgroundOpacity": 85,
    "borderColor": "#cbd5e1",
    "borderWidth": 1,
    "borderRadius": 12
  }
}

Für Kompatibilität mit älteren Agent-Prompts werden auch Top-Level-Stilschlüssel wie backgroundColor, backgroundOpacity, borderColor, borderWidth und borderRadius akzeptiert und unter styles gespeichert.

Transaktions-E-Mail

ToolBeschreibung
list_transactional_emailsVorlagen suchen/filtern und nach Zustellmetriken sortieren; gibt Betreffzeilen und Dashboard-URLs zurück.
get_transactional_emailEine Transaktions-E-Mail nach ID oder Slug lesen.
create_transactional_emailEine Transaktionsvorlage aus einem Prompt, HTML oder Blöcken erstellen.
update_transactional_emailTransaktionsmetadaten oder Textinhalte aktualisieren.
send_emailEine E-Mail nach Vorlage oder HTML an gemeinsame An-, Cc- und Bcc-Empfänger senden.

Prompt-erstellte Transaktionsvorlagen werden serverseitig generiert und standardmäßig zur Überprüfung deaktiviert. Explizite HTML- oder Blockvorlagen behalten den Kompatibilitätsstandard von aktiviert; übergeben Sie enabled explizit, um einen der Standards zu überschreiben. Für einen direkten Versand übergeben Sie to, subject und html; der MCP-Server ordnet html dem body-Feld der Transaktions-API zu. Für eine gespeicherte transaktionale E-Mail übergeben Sie deren API-Slug stattdessen über das kompatibilitätsbenannte templateId-Feld. Für transaktionale Sendungen akzeptieren to, cc und bcc jeweils eine Adresse oder ein Array mit bis zu 50 Einträgen. Die API sendet eine E-Mail mit einer gemeinsamen Empfängerliste und entfernt feldübergreifende Duplikate in der Prioritätsreihenfolge to, dann cc, dann bcc. Marketing-Sendungen erfordern weiterhin genau eine akzeptierte to-Adresse und unterstützen keine zusätzlichen Empfänger. send_email-Variablen unterstützen verschachtelte Arrays für Wiederholungsblöcke, wie zum Beispiel { "event": { "items": [...] } }. Wenn der Empfänger mit einem gespeicherten Abonnenten über externe ID oder E-Mail übereinstimmt, werden gespeicherte Vor- und Nachnamen automatisch in fehlende Namensvariablen eingefügt. Explizite Werte, einschließlich leerer Werte, haben Vorrang. Das optionale attachments-Array akzeptiert bis zu 10 Dateien / insgesamt 7 MB. Jedes Element benötigt filename und genau eines von Base64-content oder eine öffentliche HTTP(S)-path. Setzen Sie contentId, um ein CID-Bild einzubetten, auf das aus dem HTML verwiesen wird, und setzen Sie optional contentType, um die MIME-Erkennung zu überschreiben. Wenn trackingSettings weggelassen wird, gelten die Tracking-Standardeinstellungen der Transaktions-API des Unternehmens. Verwenden Sie trackingSettings.clickTracking: false oder trackingSettings.openTracking: false, um das Link-Umschreiben oder den Öffnungs- Pixel für einen einzelnen Versand zu deaktivieren. Diese Optionen pro Versand deaktivieren nur; sie können kein Tracking aktivieren, das durch einen kontoübergreifenden oder Transaktions-API-Standard deaktiviert wurde. Verwenden Sie get_tracking_settings und update_tracking_settings, um diese Standardeinstellungen zu prüfen oder zu ändern.

Für Agent- und Workflow-Wiederholungen fügen Sie eine stabile idempotencyKey (bis zu 255 Zeichen) in send_email ein. Verwenden Sie einen Schlüssel pro logischer E-Mail und senden Sie beim Wiederholen dieselben Argumente; der Schlüssel bleibt 14 Tage lang gültig.

Analytik

ToolBeschreibung
get_statsÜbersichtsstatistiken für 7d, 30d oder 90d abrufen; nach strukturellem E-Mail-Typ filtern.
get_transactional_statsAlle Zeiträume oder zeitlich begrenzte Metriken für eine gespeicherte transaktionale E-Mail nach ID oder Slug abrufen.
get_campaign_statsKampagnenleistung, Antwortmetriken, zugeordnete Conversion-Ziele und Poll/NPS-Zusammenfassungen abrufen.
list_poll_responsesDie neueste Poll/NPS-Antwort jedes Befragten pro Block mit Identität und Antwortzeit auflisten.
get_sequence_statsAggregierte und schrittweise Sequenzleistung sowie Live-Anzahl aktiver/wartender Einschreibungen nach aktuellem Knoten abrufen.
list_email_metricsKampagnen- und Sequenzschritt-Trichter, Antworten, Conversions und Umsatz vergleichen, einschließlich sequenzübergreifender Schritte.
list_campaign_eventsPaginierte Roh-E-Mail-Ereignisse für eine Kampagne auflisten.
list_sequence_eventsPaginierte Rohereignisse für eine Sequenz auflisten, optional auf einen E-Mail-Schritt begrenzt.
get_subscriber_activityE-Mail-Statistiken, Aktivität und Einschreibungen von Abonnenten abrufen.

Kampagnen- und Sequenz-Ereignisfilter akzeptieren transport_failure neben Zustellungs-, Bounce-, Beschwerde-, Interaktions-, Abmelde- und Verzögerungsereignissen. Transportfehler beschreiben MTA-Infrastruktur oder Erschöpfung des Ausgangspfads; sie klassifizieren eine gültige Empfängeradresse nicht als gebounct.

Analytik-Tools schließen erkannte Bot-, Scanner-, Link-Vorschau- und getrackte Asset-Öffnungen/-Klicks standardmäßig aus. Übergeben Sie includeMachineEngagement: true an get_stats, get_campaign_stats, get_sequence_stats, get_ab_test_stats, get_subscriber oder get_subscriber_activity, wenn Sie Roh-Interaktionsdiagnosen benötigen; enthaltene Öffnungs-/Klick-Aktivitätszeilen legen machine, engagementQuality und classificationReasons-Felder offen, wo die API ereignisebenenbezogene Aktivität zurückgibt.

get_sequence_stats.enrollmentCounts ist eine Live-Momentaufnahme von aktiven und wartenden Einschreibungsausführungen, gruppiert nach aktuellem Knoten. Es zählt Einschreibungs-Tokens und nicht unbedingt eindeutige Abonnenten, und es ist nicht durch historische period-, start- oder end-Filter begrenzt.

Verwenden Sie list_email_metrics für Vergleiche über Kampagnen oder Sequenzschritte hinweg. Übergeben Sie step mit optionalen sequenceId-Werten, um denselben Schritt über Sequenzen hinweg zu summieren; verwenden Sie die zurückgegebene automationNodeId mit list_sequence_events oder list_email_sends, um Empfänger zu prüfen. campaignId kann nicht mit sequenceId oder step kombiniert werden. Explizite Kampagnen- und Sequenzbereiche behalten konfigurierte E-Mails mit null Aktivität bei, sodass schwache Leistungsträger nicht stillschweigend weggelassen werden.

Übergeben Sie emailType: "transactional" an get_stats für Send-API- und transaktionale SMTP-Zustellungs-, Öffnungs-, Klick- und Antwortraten. Dies umfasst direkte und gespeicherte Vorlagen-Sendungen. Verwenden Sie die emailSendId, die von send_email zurückgegeben wird, mit get_email_send, wenn Sie den Status und die Ereigniszeitachse einer Zustellung benötigen. Verwenden Sie get_transactional_stats, wenn Sie aggregierte Raten für eine gespeicherte transaktionale E-Mail benötigen. Die Antwort enthält die am häufigsten geklickten Links, Beschwerden, Antworten, neueste permanente/vorübergehende Bounce-Klassifizierungen und getrennte menschliche und maschinelle Öffnungs-/Klick-Zählungen. Direktinhalts-Sendungen haben keine stabile Vorlagen-ID und bleiben über Kontotransaktionsstatistiken plus Zustellungssuche verfügbar.

Wenn eine Kampagne Poll- oder NPS-Antworten sammelt, enthält get_campaign_stats ein Top-Level-polls-Array. Jeder Abonnent zählt einmal pro Poll-Block mit seiner neuesten Antwort. NPS-Zusammenfassungen enthalten den Score, den Durchschnitt und Promoter/Passive/Detractor-Zählungen. Dies sind Lebenszeit-Antwortzusammenfassungen, auch wenn Interaktionsmetriken einen Zeitfilter verwenden.

Verwenden Sie list_poll_responses, um zu lesen, wer was und wann beantwortet hat. Es gibt die neueste Antwort jedes Abonnenten pro Poll-Block zurück, neueste zuerst, einschließlich der E-Mail, des gespeicherten Werts, des Attributschlüssels und der Antwortzeit. Übergeben Sie blockId, um einen einzelnen Poll zu begrenzen; für einen Sequenz-E-Mail-Schritt übergeben Sie dessen Automatisierungsknoten-ID als campaignId. Rekonstruieren Sie diesen Verlauf nicht durch Scannen von Abonnentenattributen: Ein Attribut hat keinen Antwortzeitstempel und kann durch eine spätere E-Mail überschrieben worden sein, die denselben Schlüssel wiederverwendet hat.

Um die genauen historischen Befragten hinter einer Zählung aufzulisten, rufen Sie create_segment mit Feld pollResponse, Operator is und einem JSON-Wert auf, der auf die Kampagne und die blockId der Zusammenfassung begrenzt ist:

{
  "v": 1,
  "campaignId": "camp_123",
  "blockId": "poll_1",
  "match": { "kind": "answer", "value": "loved" }
}

Für NPS verwenden Sie einen Abgleich wie {"kind":"npsBucket","bucket":"detractors"}; gültige Buckets sind promoters, passives und detractors. Die attributeKey der Zusammenfassung speichert die aktuelle/neueste Antwort des Abonnenten und kann durch eine spätere Umfrage überschrieben werden, die den Schlüssel wiederverwendet, daher ist es keine exakte historische Drill-down-Abfrage.

Team, Posteingang, Webhooks

ToolBeschreibung
list_team_membersTeammitglieder und ausstehende Einladungen auflisten.
invite_team_memberEinen Teammitarbeiter als Admin oder Betrachter einladen, mit optionalem Abrechnungszugriff.
cancel_team_invitationEine ausstehende Teameinladung stornieren.
list_conversationsAntwortkonversationen von Abonnenten mit Status- und Ungelesen-Filtern auflisten.
get_conversationEine Konversation und ihren Nachrichtenverlauf lesen.
reply_to_conversationEine ausgehende Antwort in die Warteschlange stellen oder eine interne Notiz hinzufügen.
update_conversation_statusEine Konversation öffnen oder schließen.
mark_conversation_readAlle Nachrichten in einer Konversation als gelesen markieren.
list_webhooksAusgehende Webhook-Endpunkte auflisten.
create_webhookEinen Endpunkt erstellen und sein einmaliges Signing-Geheimnis auf Standard-MCP zurückgeben; auf der OpenAI-geprüften Route weggelassen.
update_webhookWebhook-Name, URL, Ereignisse oder Status aktualisieren.
delete_webhookEinen Webhook-Endpunkt und den Zustellungsverlauf dauerhaft löschen.
test_webhookEin Testereignis an einen Webhook-Endpunkt senden.
list_webhook_deliveriesKürzliche Zustellversuche für einen Webhook auflisten.
replay_webhook_deliveryEine Webhook-Zustellung erneut abspielen.

Änderungen der Einwilligung pro Liste sind als Opt-in-Ausgangsereignisse verfügbar: subscriber.list_subscribed und subscriber.list_unsubscribed. Ihre Nutzlasten identifizieren den Abonnenten und die Liste, melden action als added oder removed und enthalten die Änderungs-source (zum Beispiel preferences_page, dashboard, api oder automation).

Verwenden Sie das email.failed-Ereignis für endgültige Zustellfehler wie erschöpfte MTA-Transportpfade. Empfänger-Bounces verwenden weiterhin email.bounced.

Verwenden Sie das nur-explizite campaign.sent-Ereignis, wenn ein Workflow eine einzige endgültige Benachrichtigung benötigt, nachdem eine E-Mail- oder SMS-Kampagne abgeschlossen ist, einschließlich eines gültigen Versands mit null Empfängern. Es wird nicht hinzugefügt, wenn create_webhook events auf Standard-MCP weglässt; auf der OpenAI-geprüften Route fügen Sie es im Dashboard hinzu, wenn Sie den Webhook erstellen oder bearbeiten.

KI-Generierung

ToolBeschreibung
generate_emailMarken-E-Mail-Blöcke aus einer Eingabeaufforderung generieren.
generate_sequenceVeralteter Alias, der einen zielbasierten Sequenzentwurf beibehält.
generate_subject_linesA/B-Betreffzeilenvarianten generieren.

Generierter E-Mail-Inhalt enthält standardmäßig das Logo und die Fußzeile des Unternehmens. generate_email akzeptiert applyBranding: false für rohe Inhaltsblöcke und emailType: "transactional" für eine Fußzeile ohne Abmeldelink. Prompt-basierte Kampagnen erben die konfigurierte E-Mail-Schriftart des Unternehmens. Generierter Inhalt wird als Entwurfsinhalt zur Überprüfung zurückgegeben. Verwenden Sie create_sequence, um einen deaktivierten Sequenzentwurf zu generieren und beizubehalten, der in list_sequences erscheint; der veraltete generate_sequence-Alias macht dasselbe.

SMS

ToolBeschreibung
generate_smsSMS-Text aus einer Eingabeaufforderung generieren.
get_sms_settingsSMS-Add-on-Bereitschaft, Guthaben, Standardeinstellungen und bereitgestellte Nummern lesen.
get_sms_usageSendungen, Zustellungsergebnisse, belastete Credits, letzte Aktivität und Testsendungen nach Nummer vergleichen.
update_sms_number_labelBezeichnung einer Nummer oder markenspezifische Präfix-Überschreibung pro Nummer aktualisieren.
release_sms_numberEine Nummer dauerhaft an den Anbieter zurückgeben und ihren Workspace-Slot freigeben.
send_test_smsEine Testnachricht senden, optional mit einem bereitgestellten Absender über fromNumberId.

release_sms_number ist irreversibel. Kampagnen- oder Sequenzschritte, die an eine freigegebene Nummer gebunden sind, überspringen ihre SMS-Sendungen, bis sie auf eine aktive Nummer umgeleitet werden. get_sms_usage meldet Produktionssummen getrennt von testSends. Wenn send_test_sms fromNumberId auslässt, verwendet es denselben Standard der ältesten aktiven Nummer wie Produktionssendungen. Testsendungen sind echte, credit-belastete Nachrichten, die Ruhezeiten umgehen und auf 100 pro Unternehmen in einem rollierenden 24-Stunden-Zeitfenster begrenzt sind.

Produktfeedback

Verwenden Sie submit_feedback nur, wenn der Benutzer den Assistenten ausdrücklich bittet, Feedback an das Sequenzy-Team zu senden. Standard-MCP kann die strukturierten Reproduktionsfelder userIntent, toolCalls, expected, actual und resourceIds enthalten, wenn sie für diesen Bericht benötigt werden. Der OpenAI-geprüfte Weg akzeptiert nur die Nachricht, die Kategorie und optional den generalisierten Workflow-Kontext. Binden Sie keine unzugehörigen Abonnentendaten, E-Mail-Inhalte, rohe API-Payloads, Debug-Daten oder Geheimnisse ein.

Ressourcen

Der Server stellt außerdem schreibgeschützte MCP-Ressourcen bereit.

RessourceBeschreibung
sequenzy://dashboardLive-Übersichtsstatistiken für die letzten 7 Tage.
sequenzy://companyAktuelle Unternehmens- und Lokalisierungseinstellungen.
sequenzy://campaigns/recentLetzte 10 Kampagnen mit Status und Basisstatistiken.
sequenzy://subscribers/recentZuletzt hinzugefügte Abonnenten.
sequenzy://subscribers/engagedAktivste oder engagierteste Abonnenten.
sequenzy://sequencesAlle Sequenzen mit Status.
sequenzy://templatesVorlagen mit Lokalisierungsstatus.
sequenzy://segmentsGespeicherte Segmente mit Abonnentenzahlen.
sequenzy://tagsTags mit Nutzungszahlen.
sequenzy://healthZustellbarkeitsmetriken und Gesundheitsstatus.
sequenzy://email-blocksFeldreferenz für jeden E-Mail-Blocktyp.
sequenzy://app-routesDashboard-Routenvorlagen und Einstellungsregisterkarten.

Beispiel-Eingabeaufforderungen

Add john@example.com with tags "vip" and "developer", then put them on the beta list.
Create a 4-email churn prevention sequence for users whose subscription expires soon. Leave it in draft mode.
Create a segment for subscribers who bought Stripe product prod_pro at least 3 times.
Draft a campaign about our new analytics dashboard, target the Pro users segment, and send a test to me.
How did the last campaign perform compared with the one before it?

Sicherheit

  • Verwenden Sie persönliche API-Schlüssel, keine gemeinsamen Team-Geheimnisse.
  • Schlüssel gewähren nur Zugriff auf Unternehmen, auf die Ihr Sequenzy-Benutzer zugreifen kann.
  • Widerrufen Sie Schlüssel unter Einstellungen -> API-Schlüssel, wenn kein Zugriff mehr benötigt wird.
  • Lassen Sie Client-Genehmigungsaufforderungen für Sendungen, Zeitplanungen, Löschungen und Massenänderungen aktiviert.
  • Bevorzugen Sie Entwurfs-Workflows für Kampagnen und Sequenzen und überprüfen Sie diese dann in Sequenzy vor dem Start.

Fehlerbehebung

SEQUENZY_API_KEY environment variable is required

Setzen Sie SEQUENZY_API_KEY in der MCP-Client-Konfiguration oder führen Sie Folgendes aus:

npx @sequenzy/setup

Ungültiger API-Schlüssel

Erstellen Sie einen neuen persönlichen Schlüssel unter Einstellungen -> API-Schlüssel, aktualisieren Sie Ihre MCP-Konfiguration und starten Sie den Client neu.

Fehlender API-Schlüssel-Bereich

Rufen Sie get_account auf und prüfen Sie apiKeyPermissions. Lokale Verbindungen sollten apiKeyPermissions.manageUrl öffnen, den fehlenden Bereich zum geladenen Schlüssel hinzufügen und ohne Neustart erneut versuchen. update_api_key kann dies nur für Unternehmensschlüssel durchführen, die bereits api_keys:manage besitzen; bearbeiten Sie persönliche Schlüssel auf der API-Schlüssel-Seite auf Kontoebene. Gehostete OAuth-Verbindungen können alternativ die Verbindung trennen und mit umfassenderen Berechtigungen neu autorisieren. Der Tool-Fehler enthält den genauen Bereich oder die genauen Bereiche, die erforderlich sind.

Doppelte Ressourcen

Wenn ein Tool-Aufruf einen doppelten Segmentnamen oder eine doppelte Sendedomain erstellen würde, gibt der Server ein stabiles code, ein agentenfreundliches description, ein konkretes resolution und ein docsUrl zurück. Für Segmente rufen Sie list_segments auf und verwenden Sie die vorhandene Segment-ID erneut oder wählen Sie einen anderen Namen. Für Websites rufen Sie list_websites auf; wenn die Domain nicht für das ausgewählte Unternehmen aufgeführt ist, gehört sie einem anderen Unternehmen oder Konto und muss entfernt, neu zugewiesen oder durch eine andere Sendedomain ersetzt werden.

Tools werden nicht angezeigt

  • Bestätigen Sie, dass npx in der Umgebung verfügbar ist, die der Client verwendet.
  • Starten Sie den MCP-Client nach dem Bearbeiten der Konfiguration neu.
  • Überprüfen Sie, ob sich die Konfiguration am richtigen clientspezifischen Speicherort befindet.

Netzwerk- oder API-URL-Probleme

Der Server verwendet standardmäßig https://api.sequenzy.com. Wenn Sie es überschreiben, stellen Sie sicher, dass SEQUENZY_API_URL auf eine erreichbare Sequenzy-API-Basis-URL zeigt.

Entwicklung

bun install
bun test
bun run type-check
bun run build

MCP-Toolschemata müssen mit strengen Clients kompatibel bleiben:

  • Tool-inputSchema-Wurzeln müssen einfache type: "object"-Schemata sein.
  • Veröffentlichen Sie anyOf nicht an beliebiger Stelle in Toolschemata.
  • Platzieren Sie oneOf, allOf, enum oder not nicht an der Wurzel eines Toolschemas.
  • Erzwingen Sie bedingte Anforderungen in Handlern und decken Sie sie mit Tests ab.

Dieses eigenständige Repository spiegelt das MCP-Paket wider, das im Haupt-Sequenzy-Monorepo gepflegt wird. Siehe AGENTS.md für Synchronisierungsregeln.

Lizenz

MIT

Agenten-native Erkennung

Sequenzy veröffentlicht maschinenlesbare Manifeste für Agentennetzwerke und A2A-ähnliche Erkennung:

Diese Dateien beschreiben Sequenzy als autorisierte E-Mail-Automatisierungsfähigkeit für Agenten. Sie schließen explizit Scraping, Spam und unaufgeforderte Kaltakquise-Anwendungsfälle aus.

Workspace-Rollen

Der Kontoschlüsselzugriff kombiniert Schlüsselbereiche mit Ihrer aktuellen Workspace-Rolle. get_account meldet blockierte Bereiche in apiKeyPermissions.roleRestrictedScopes; canSendLive bedeutet, dass mindestens ein zulässiger Zustellungs-Workflow verfügbar ist, nicht dass jedes Sendetool erlaubt ist.

Sie können einen marketer einladen, um Abonnenten, Marketingkampagnen und Sequenzen zu verwalten, ohne Zugriff auf Transaktions-E-Mails, Workspace-Einstellungen, Team oder Abrechnung zu gewähren. Vermarkter wählen vorhandene Absender-/Antwortprofile. Transaktionsgestützte Kampagnen-, A/B- und Sequenzquellen bleiben durch Vorschauen, Freigaben, Analysen und Sendehistorie geschützt. Vermarkter und eingeschränkte Mitglieder können keinen Abrechnungszugriff erhalten.