Sequenzy MCP
offiziellE-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_listund 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_campaignundsend_campaign. - Landingpages und Formulare erstellen — Listenbezogene Anmeldeformulare und Landingpages mit responsiven Block-Layouts gestalten, dann veröffentlichen oder statische Website-Einbettungen über
create_landing_pageerhalten. - 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_sequenceund erstellen. - Zustellbarkeit und Versand überwachen — Pausierten Versand diagnostizieren, Bounce-/Beschwerde-Sperrungen prüfen und berechtigte Hard-Bounce-Pausen mit
get_sending_statusundresume_sendingwiederherstellen.
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:
- MCP-Server-Manifest:
server.json - Agentenkarte:
.well-known/agent-card.json - Agentenfähigkeits-Manifest:
agent-capability.json - OpenClaw-Fähigkeitsmetadaten:
openclaw/skill.json
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
- Öffnen Sie das Sequenzy-Dashboard.
- 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.
- Wählen Sie eine Berechtigungsvoreinstellung oder die genauen benutzerdefinierten Bereiche, die die Integration benötigt.
- 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
| Tool | Beschreibung |
|---|---|
get_account | Kontoinformationen, verfügbare Unternehmen, aktuelle Schlüsselberechtigungen und die URL zur Verwaltung von API-Schlüsseln abrufen. |
select_company | Das aktive Unternehmen für zukünftige Tool-Aufrufe festlegen. |
get_app_urls | Dashboard-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_company | Ein neues Unternehmen oder eine neue Marke erstellen. |
get_company | Unternehmensdetails, 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_company | Produktinformationen, Markenkontext, E-Mail-Design, Antwortverfolgung und kontoübergreifende Standardwerte oder Namen für Von/Antwort-an-Profile bearbeiten. |
get_sync_rules | Die Ereignis-zu-Tag-Regeln des Unternehmens lesen und prüfen, ob die geerbte Plattform-Voreinstellung verwendet wird. |
update_sync_rules | Alle Synchronisierungsregeln ersetzen; [] übergeben, um sie zu deaktivieren, oder null, um die SaaS/E-Commerce-Plattform-Voreinstellung zu übernehmen. |
get_shopify_automation_settings | Einstellungen zu Browser-Abbruch, Warenkorb-Abbruch und Preisverfall für den verbundenen Shopify-Shop lesen. |
update_shopify_automation_settings | Shopify-Automatisierungseinstellungen teilweise aktualisieren oder einen einzelnen Abschnitt auf die Plattform-Standardwerte zurücksetzen. |
create_api_key | Einen Unternehmens-API-Schlüssel erstellen und dessen einmaliges Geheimnis auf Standard-MCP zurückgeben; in der OpenAI-geprüften Route ausgelassen. |
request_api_key_handoff | Eine vom Eigentümer geprüfte Erstellungs-/Rotations-URL vorbereiten, wenn der aktive Schlüssel API-Schlüssel nicht selbst verwalten kann. |
list_api_keys | Unternehmens-API-Schlüssel als nicht-geheime Metadaten zur sicheren Identifizierung und Bereinigung auflisten. |
update_api_key | Einen Unternehmens-API-Schlüssel umbenennen oder dessen Berechtigungsvoreinstellung oder Bereiche ersetzen, ohne den Schlüsselwert zu ändern. |
revoke_api_key | Einen genauen Unternehmens-API-Schlüssel anhand der ID dauerhaft widerrufen, nachdem er mit list_api_keys geprüft wurde. |
delete_api_key | Kompatibilitätsalias für revoke_api_key. |
list_websites | Sende-Domains mit gespeichertem aggregiertem SPF-, DKIM- und MAIL-FROM-Status auflisten. |
add_sending_domain | Eine Sende-Domain hinzufügen und deren kohortenspezifische DNS-Einrichtungsdatensätze zurückgeben. |
add_website | Kompatibilitätsalias für add_sending_domain. |
check_website | Gespeicherte SPF-, DKIM-, MAIL-FROM- und aggregierte Verifizierungsdetails einer Sende-Domain lesen. |
verify_sending_domain | Eine neue DNS-/Anbieter-Verifizierung der Sende-Domain ausführen und aktuellen Status und Diagnosen zurückgeben. |
list_integrations | Verbundene Integrationen mit Verbindungs- und Synchronisierungsstatus auflisten, ohne Anmeldeinformationen zurückzugeben. |
get_sending_status | Aktives, pausiertes oder ausgesetztes Senden diagnostizieren, einschließlich Durchsetzungsnennern, Prüfschwellen und Korrekturmaßnahmen. |
resume_sending | Eine berechtigte Pause wegen harter Bounces wiederherstellen, nachdem ausdrücklich bestätigt wurde, dass die Liste bereinigt wurde. |
get_tracking_settings | Kontoübergreifende und Transaktions-API-Standardwerte für Öffnungen/Klicks, Abmeldung, Attribution, UTM, Klick-Domain, Antwortverfolgung und Double-Opt-in lesen. |
update_tracking_settings | Kontoübergreifende und Transaktions-API-Standardwerte für Tracking, Attribution, UTM und kontoübergreifendes Double-Opt-in aktualisieren. |
get_integration_guide | Framework-spezifische Integrationsbeispiele abrufen. |
get_integration | Eine verbundene Integration, deren Ereignisverkabelung, Listen-Targeting, aktuelle Aktivität und Empfehlungen prüfen. |
list_integration_capabilities | Anbieterfunktionen vergleichen, unabhängig davon, ob sie verbunden sind. |
connect_integration | Unterstü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_schema | Veröffentlichte Ereignis-Payload-Beispiele, Eigenschaftspfade, Typen und Merge-Tags nach Anbieter prüfen. |
list_integration_activity | Das gespeicherte integrationsspezifische Webhook- und Synchronisierungsaktivitätsprotokoll lesen. |
set_integration_sync_enabled | Massenimporte und Backfills aktivieren oder deaktivieren, während Live-Webhooks verbunden bleiben. |
set_integration_list_targeting | Auswählen, welchen Listen Kontakte, die durch eine unterstützte Integration erstellt wurden, bei zukünftigen Anbieter-Schreibvorgängen beitreten. |
sync_integration | Zahlungseinnahmen, Supabase-Benutzer oder einen PostHog/Segment-Ereignisverlaufsimport mit der gespeicherten Integrationskonfiguration in die Warteschlange stellen. |
get_integration_pixel | Den Live-Pixel-/Konfigurationsstatus von Shopify lesen und bestätigte dunkle Ereignisse von einem unbekannten Lesevorgang unterscheiden. |
activate_integration_pixel | Installieren oder neu ausrichten des Shopify-Storefront-Pixels; idempotent, wenn er bereits aktuell ist. |
list_web_tracking_keys | Auflisten von veröffentlichbaren Website-Tracking-Schlüsseln, Ursprungsbeschränkungen, Nutzungsstatus und Installations-Snippets. |
get_web_tracking_key | Abrufen eines Website-Tracking-Schlüssels mit seinem exakten Installations-Snippet und Ingest-Endpunkt. |
create_web_tracking_key | Erstellen eines veröffentlichbaren Tracking-Schlüssels für ein Nicht-Shopify-Storefront oder eine Website. |
update_web_tracking_key | Umbenennen, Einschränken, Widerrufen oder erneutes Aktivieren eines Website-Tracking-Schlüssels. |
delete_web_tracking_key | Dauerhaftes Löschen eines Website-Tracking-Schlüssels, nachdem sein Snippet entfernt wurde. |
list_sender_profiles | Auflisten von Absender- und Antwort-adresse-Profilen, Standardwerten und Bereitschaft der Sende-Domain. |
update_sender_profile | Umbenennen eines Absender- oder Antwort-adresse-Profils, ohne die Konto-Standardwerte zu ändern. |
delete_sender_profile | Dauerhaftes Löschen eines ungenutzten Absender-Profils, mit Schutzmaßnahmen für aktive Sende-Oberflächen und den letzten verbleibenden Absender. |
get_notification_preferences | Lesen der Kontobenachrichtigungseinstellungen des aktuellen Benutzers pro Unternehmen und der unterstützten Modi, einschließlich des wöchentlichen Montagsberichts. |
update_notification_preferences | Aktualisieren der Zustellmodi für Kontobenachrichtigungen des aktuellen Benutzers, einschließlich Abmeldung vom Wochenbericht, ohne Auswirkungen auf Teammitglieder. |
render_email | Rendern 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
| Tool | Beschreibung |
|---|---|
add_subscriber | Einen Abonnenten hinzufügen; Status ist nur bei Erstellung, verwenden Sie also update_subscriber für einen bestehenden Kontakt. |
create_subscriber_import | Bis 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_import | Fortschritt, Zeilenergebniszahlen und Fehlerzusammenfassungen für einen eingereihten Import lesen. |
update_subscriber | Native Profil- und Telefonfelder, SMS-Einwilligung, Attribute, Tags oder globalen Status aktualisieren. |
remove_subscriber | Abbestellen unter Beibehaltung der Suppression-Historie oder dauerhaft löschen nur mit hardDelete: true. |
get_subscriber | Abonnentendetails per E-Mail oder externer ID abrufen. |
search_subscribers | Nach Abfrage, Tags, Liste, Status, Segment oder einem benutzerdefinierten Attribut suchen, mit automatischer oder fortsetzbarer Paginierung. |
trigger_subscriber_event | Ein benutzerdefiniertes Ereignis genau wie eine Integration ausgeben, mit Anwendung von Sync-Regeln und passenden Sequenz-Triggern. |
trigger_subscriber_events | Mehrere geordnete benutzerdefinierte Ereignisse für einen Abonnenten ausgeben. |
import_subscriber_events | Bis 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_tags | Tags zu bis zu 500 bestehenden Abonnenten hinzufügen; erfordert subscribers:tag und kann auch tags:write erfordern. |
bulk_remove_subscriber_tags | Tags 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
| Tool | Beschreibung |
|---|---|
list_products | Listet synchronisierte Produkte aus Stripe, Shopify, WooCommerce, manuellen oder Commerce-API-Daten auf. |
upsert_products | Erstellt oder aktualisiert bis zu 100 Commerce-API-Produkte, die nach Ihrer Produkt-ID verschlüsselt sind. |
delete_product | Löscht ein Produkt, das zuvor über die Commerce-API übertragen wurde. |
attach_product_file | Hängt eine gehostete oder lokal hochgeladene Zustelldatei an ein Produkt an. |
remove_product_file | Entfernt eine angehängte Produktzustelldatei. |
sync_products | Stellt 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
| Tool | Beschreibung |
|---|---|
upload_image_asset | Lä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
| Tool | Beschreibung |
|---|---|
list_tags | Listet alle Tags auf. |
create_tag | Erstellt eine Tag-Definition mit einer optionalen Farbe. |
update_tag | Aktualisiert eine Tag-Farbe. |
delete_tag | Löscht ein Tag und entfernt es von Abonnenten. |
list_lists | Listet Abonnentenlisten auf. |
create_list | Erstellt eine Abonnentenliste. |
update_list | Benennt eine Abonnentenliste um oder beschreibt sie. |
delete_list | Löscht eine Abonnentenliste. |
add_subscribers_to_list | Fügt bis zu 500 Abonnenten zu einer Liste aus einem E-Mail-Array hinzu. |
remove_subscribers_from_list | Entfernt bis zu 500 Abonnenten aus einer Liste. |
list_segments | Listet gespeicherte Segmente und Zählungen auf. |
create_segment | Erstellt verschachtelte oder gleich-elementige array-gefilterte Segmente. |
update_segment | Aktualisiert Segmentname, Filter, Stammgruppe oder Verknüpfungsoperator. |
delete_segment | Löscht ein Segment (erfordert segments:delete). |
get_segment_count | Zeigt 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_nottag:contains,not_contains,is_empty,is_not_emptyemail:contains,not_containsemailProvider,list:is,is_not,is_empty,is_not_emptyfirstName,lastName:contains,not_contains,is_empty,is_not_emptyadded:less_than,more_thanattribute:is,is_not,is_empty,is_not_empty,gte,lte,gt,lt,contains,not_containsevent, E-Mail-Engagement-Felder:is,is_not,at_least,less_than_countemailBounced: unterstützt auchis_temporary_bounce,is_permanent_bouncestripeProduct:is,is_not,at_least,less_than_countstripeCurrentProduct,stripeTrialProduct:is,is_not,gte,lte,gt,ltcommerceProduct: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)
| Tool | Beschreibung |
|---|---|
list_audience_syncs | Listet Segment-zu-Zielgruppen-Synchronisierungen mit Zeitplan und letztem Synchronisierungsstatus auf. |
list_ad_accounts | Listet 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_sync | Entfernt eine Synchronisierungszuordnung; die Meta-Zielgruppe selbst bleibt erhalten. |
sync_audience_now | Lö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
| Tool | Beschreibung |
|---|---|
list_templates | Vorlagen mit Lokalisierungsstatus, Label und isTemplate-Filterung sowie Paginierung auflisten. |
get_template | Vorlagendetails, Inhalt und lokalisierte Varianten lesen. |
create_template | Vorlagen aus einem Prompt, HTML oder Sequenzy-Blöcken erstellen; mit isTemplate: true ein wiederverwendbares Master-Design speichern. |
update_template | Vorlagenmetadaten, Inbox-Vorschau-Text, Labels, HTML oder Blöcke aktualisieren; ein Master mit isTemplate markieren oder die Markierung aufheben. |
set_template_localization | Eine vom Aufrufer bereitgestellte lokalisierte Variante erstellen oder ersetzen. |
sync_template_localizations | KI-Übersetzung für ausgewählte oder alle aktivierten Nicht-Primär-Sprachen in die Warteschlange stellen. |
delete_template | Eine 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
| Tool | Beschreibung |
|---|---|
list_email_components | Gespeicherte Abschnitte und Fußzeilen auflisten, optional auf angeheftete Standardwerte begrenzt. |
get_email_component | Blöcke, Metadaten, Version und Standard-Slot-Zustand einer Komponente lesen. |
get_default_email_component | Die Komponente lesen, die derzeit an einen Standard-Slot wie footer angeheftet ist. |
set_default_email_component | Die Unternehmens-Standardfußzeile erstellen oder ersetzen, die von neu erstellten Block-E-Mails verwendet wird. |
create_email_component | Einen wiederverwendbaren Abschnitt oder eine Fußzeile aus einer Blockliste speichern. |
update_email_component | Komponentenmetadaten aktualisieren oder ihre Blöcke ersetzen und ihre Version erhöhen. |
delete_email_component | Eine 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
| Tool | Beschreibung |
|---|---|
list_ab_tests | A/B-Tests und Varianten auflisten, optional nach Sequenz eingegrenzt. |
get_ab_test | Effektive Einstellungen, Varianten, Lokalisierungsstatus und Sequenzschritt-Kopie abrufen. |
get_ab_test_stats | Aggregierte und variantenspezifische Statistiken abrufen. |
restart_ab_test | Einen gestoppten oder abgeschlossenen A/B-Test neu starten. |
select_ab_test_winner | Einen Kampagnentest-Gewinner auswählen und die verbleibende Zustellung in die Warteschlange stellen. |
update_ab_test | Einstellungen zur Kampagnen- oder Sequenz-Gewinnerauswahl aktualisieren. |
update_ab_test_variant | Kampagnenentwurf oder Sequenzvarianten-Kopie aktualisieren. |
create_ab_test | Einen Kampagnentest erstellen oder einen Sequenz-E-Mail-Schritt konvertieren. |
add_ab_test_variant | Eine Variante zu einem bestehenden A/B-Test hinzufügen. |
delete_ab_test_variant | Eine Entwurfs-A/B-Testvariante löschen. |
delete_ab_test | Einen 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
| Tool | Beschreibung |
|---|---|
list_campaigns | Paginierte Kampagnen nach Status oder Label auflisten, einschließlich Prüfer-Feedback und Zustellungs-Tempo-Feldern für unternehmensweite STO-Audits. |
get_campaign | Details, Statistiken, Prüfer-Feedback und aufgezeichnetes Zustellungs-Tempo für eine Kampagne abrufen. |
get_campaign_audience | Gespeicherte Zielgruppenauswahl, fehlende Referenzen, eine Zusammenfassung in einfacher Sprache und die aktuelle Empfängerzahl auflösen. |
list_campaign_goals | Die für eine E-Mail-Kampagne gespeicherten Conversion-Ziele auflisten (SMS wird nicht unterstützt). |
create_campaign_goal | Ein Conversion-Ziel für E-Mail-Kampagnen hinzufügen (Ereignis, Abonnentenattribut oder Tag-Zuweisung). |
update_campaign_goal | Ein gespeichertes Conversion-Ziel für E-Mail-Kampagnen aktualisieren. |
delete_campaign_goal | Ein gespeichertes Conversion-Ziel für E-Mail-Kampagnen löschen. |
list_email_sends | Den aktuellen Zustellungsverlauf mit Ressourcen-IDs und URLs durchsuchen, optional auf einen Sequenzschritt begrenzt. Erfolgreiche Live-Test-Sendungen werden ausgelassen. |
get_email_send | Eine in der Warteschlange befindliche, Test-, gesendete, unterdrückte oder fehlgeschlagene Zustellung anhand der dauerhaften E-Mail-Sende-ID prüfen. |
list_recipient_suppressions | Zugehörige unterdrückte Empfänger auflisten, einschließlich geschützter global ungültiger Adressen und Beschwerden. |
get_recipient_suppression | Lokale Bounce-, Beschwerde-, E-Mail-Hygiene- und regionale SES-Unterdrückung für einen einzelnen Empfänger prüfen. |
remove_recipient_suppression | Eine Soft-Bounce-Eskalation im Workspace entfernen, während globale, Hard-Bounce- und Beschwerde-Schutzmechanismen erhalten bleiben. |
create_campaign | Eine Kampagne mit Inhalt, Daten und optionalen From/Reply-To-Identitätsüberschreibungen erstellen. |
update_campaign | Eine Entwurfskampagne aktualisieren, einschließlich Inhalt, Daten, Identitäten, Zielgruppe und gespeicherter STO-Konfiguration. |
schedule_campaign | Eine Kampagne planen oder neu planen, optional mit Überschreibung von STO und dessen 1-24-Stunden-Zustellungsfenster. |
send_test_email | Eine Test-E-Mail an eine Adresse senden. |
render_email | Exaktes E-Mail-sicheres HTML rendern und unaufgelöste Tags melden, einschließlich Tippfehlern, die durch Standardwerte verborgen sind. |
cancel_campaign | Eine geplante oder sendende Kampagne abbrechen. |
pause_campaign | Eine sendende Kampagne pausieren. |
resume_campaign | Eine pausierte Kampagne fortsetzen, optional mit zeitlicher Verteilung der Zustellung. |
delete_campaign | Eine Kampagne löschen. |
duplicate_campaign | Eine Kampagne in einen neuen Entwurf duplizieren. |
resend_campaign_to_non_openers | Einen 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
| Tool | Beschreibung |
|---|---|
list_forms | Listet gespeicherte Formulare mit ihren serververwalteten Zielgruppeneinstellungen, Inhaltsblöcken und öffentlichen Aktions-URLs auf. |
create_form | Erstellt und veröffentlicht ein gespeichertes Formular mit Standardfeldern für E-Mail/Name, Zielgruppeneinstellungen, Design und Erfolgsverhalten. |
update_form | Aktualisiert ein gespeichertes Formular, einschließlich seines vollständigen geordneten Block-Arrays und typisierten benutzerdefinierten Feldern. |
get_form_embed | Gibt 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
| Tool | Beschreibung |
|---|---|
list_popups | Listet gespeicherte Popups mit Status und Engagement-Statistiken auf, optional einschließlich vollständigem Inhalt. |
get_popup | Ruft die Blöcke, den Auslöser, das Targeting, den Zeitplan, die Häufigkeit, das Design und den veröffentlichten Einbettungscode eines Popups ab. |
create_popup | Erstellt ein Popup aus einer Startvorlage, standardmäßig veröffentlicht, und gibt dessen Bereitstellungsskript zurück. |
update_popup | Aktualisiert teilweise Popup-Text, Zielgruppe, Verhalten, Design, Blöcke oder Veröffentlichungsstatus. |
get_popup_embed | Gibt geheimnisfreie HTML-, React/Next.js-, WordPress- und Shopify-Einbettungs-Snippets zurück. |
duplicate_popup | Kopiert ein Popup in einen Entwurf mit unabhängigen Engagement-Zählern. |
delete_popup | Lö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
| Tool | Beschreibung |
|---|---|
list_landing_pages | Listet Landing Pages mit Status, Metriken, Inhalt und URLs auf. |
get_landing_page | Ruft Details, Builder-Inhalt, Metriken und veröffentlichte URLs einer Landing Page ab. |
render_landing_page | Gibt eine signierte 24-Stunden-Besuchervorschau zurück, ohne zu veröffentlichen, Ansichten zu zählen oder Anmeldungen zu sammeln. |
create_landing_page | Erstellt eine Entwurfs-Landing-Page aus Standardvorlageninhalt oder JSON. |
update_landing_page | Bearbeitet den Namen, den Slug oder den vollständigen editor-kompatiblen Inhalt einer Landing Page. |
publish_landing_page | Veröffentlicht eine Landing Page, optional mit vorherigem Speichern von Änderungen. |
unpublish_landing_page | Setzt eine Landing Page zurück auf Entwurfsstatus, optional mit vorherigem Speichern von Änderungen. |
duplicate_landing_page | Dupliziert eine Landing Page in einen neuen Entwurf mit einem eindeutigen Slug. |
delete_landing_page | Löscht eine unveröffentlichte Landing Page. |
connect_landing_page_domain | Verbindet eine benutzerdefinierte Landing-Page-Domain und gibt DNS-Einrichtungsdetails zurück. |
update_landing_page_domain_settings | Ersetzt 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
| Tool | Beschreibung |
|---|---|
list_sequences | Sequenzen mit Dashboard-Status auflisten, mit Suche, Label, Limit- und Offset-Filtern. |
get_sequence | Sequenzdetails abrufen, A/B-Varianten-IDs und Blockanzahlen mit ab_tests:read, Knoten, Kanten, verknüpften Texten und dem Sendezeitfenster der Sequenz. |
list_sequence_enrollments | Kontakt-Einschreibungen mit Paginierung und korrekter Listen-/Tag-/Ereignis-/zeitbasierter Einstiegsattribution auflisten. Live-Sequenztests erzeugen keine Einschreibungen. |
send_sequence_test_email | Einen gespeicherten action_email-Schritt an 1–10 Prüfer senden; A/B-Schritte werden pro Variante geprüft. |
create_sequence | Einen leeren Dashboard-Entwurf oder eine KI-generierte/explizite Schritt-Sequenz erstellen. |
update_sequence | Identität, Einstellungen, Einschreibung, vorhandene Schritte, Verzweigungslogik aktualisieren oder lineare Schritte einfügen. |
update_sequence_node | Typbewusster Patch eines vorhandenen Sequenzknotens. |
update_sequence_nodes | Atomares Patchen mehrerer vorhandener Sequenzknoten. |
insert_sequence_step | Beliebigen typisierten Dashboard-Schritt einfügen, einschließlich KI-Generierung, ausgehender Webhooks, Wartezeiten und verdrahteter Verzweigungen. |
edit_sequence_graph | Graphknoten verschieben, neu verbinden, löschen oder duplizieren; meldet verschobene oder abgeschlossene Empfänger. |
simulate_sequence | Trockenlauf für aktuelle Übereinstimmungen, Aktivierungsbereitschaft und optional den Verzweigungspfad eines Kontakts ohne Einschreibung oder Versand. |
enable_sequence | Eine Sequenz aktivieren. |
disable_sequence | Eine Sequenz einfrieren, neue Einschreibungen blockieren und aktuelle Empfänger halten. |
duplicate_sequence | Eine unabhängige Entwurfskopie des Graphen, der E-Mails und der Sequenz-A/B-Tests erstellen. |
archive_sequence | Eine Sequenz in das Dashboard-Archiv verschieben und neue Einschreibungen stoppen. |
unarchive_sequence | Eine archivierte Sequenz als deaktivierten Entwurf wiederherstellen. |
list_sequence_goals | Die für eine Sequenz gespeicherten Ereignis-, Abonnentenattribut- und Tag-Konversionsziele auflisten. |
create_sequence_goal | Ein Ereignis-, Abonnentenattribut- oder Tag-Konversionsziel hinzufügen. |
update_sequence_goal | Ein gespeichertes Sequenz-Konversionsziel aktualisieren. |
delete_sequence_goal | Ein gespeichertes Sequenz-Konversionsziel löschen. |
get_sequence_inbound_webhook | Eingehende URL, Einrichtungsstatus, Beispiel und Zuordnung auf Standard-MCP lesen; die OpenAI-Route entfernt die URL mit Anmeldedaten. |
configure_sequence_inbound_webhook | Endpunkt, Feldzuordnung und Beispiel konfigurieren; die OpenAI-Route entfernt die URL mit Anmeldedaten aus ihrem Ergebnis. |
rotate_sequence_inbound_webhook_secret | Geheimnis eines eingehenden Sequenz-Endpunkts rotieren und die Ersatz-URL auf Standard-MCP zurückgeben; in der OpenAI-geprüften Route ausgelassen. |
pause_sequence_enrollments | Neue Einschreibungen für eine aktive Sequenz stoppen, während aktuelle Empfänger fortfahren. |
resume_sequence_enrollments | Neue Einschreibungen für eine aktive Sequenz wieder öffnen, ohne aktuelle Empfänger zu ändern. |
enroll_subscribers_in_sequence | Bis zu 500 Abonnenten per E-Mail, Abonnenten-ID oder beidem einschreiben, mit wiederholungssicherer Idempotenz. |
cancel_sequence_enrollments | Aktive oder wartende Einschreibungen nach Abonnenten- oder Einstiegsereignis-Feldwerten stoppen. |
realign_sequence_enrollments | Vorschau oder Warteschlange zum Verschieben von Live-Wartezeiten auf den Beginn ihres Sendezeitfensters. |
get_sequence_enrollment_realignment | Einen angewendeten Neuausrichtungsauftrag abfragen und sein abgeschlossenes Ergebnis oder den Fortsetzungscursor lesen. |
delete_sequence | Eine 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"mitlistId, mehrerenlistIdsoderlistScope:any_contact(Standard) schreibt jeden hinzugefügten Kontakt ein, einschließlich Kontakten, die keiner Liste beitreten, währendany_listauf eine tatsächliche Listenmitgliedschaft wartet.trigger: "tag_added"mittagNameoder mehrerentagNames; jedes konfigurierte Tag schreibt den Kontakt ein.trigger: "segment_entered"plussegmentIdfü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"pluseventName,inactiveDaysund optionaleminactivityBaseline(sequence_created_atodersubscriber_created_at).goalfü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
stepsmit Sequenzyblocks. - Explizites
stepsmit 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 überwaitUntiloder Kalender-Gates überwaitUntilWeekday. 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 skalarerenrollmentFieldPathfür produkt-, varianten-, bestell- oder abonnementbezogene Ereignisautomatisierungen. Array-Traversierung mit[]gehört inpropertyFilters, 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
| Tool | Beschreibung |
|---|---|
get_email_block_schema | Listen 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
| Tool | Beschreibung |
|---|---|
list_transactional_emails | Vorlagen suchen/filtern und nach Zustellmetriken sortieren; gibt Betreffzeilen und Dashboard-URLs zurück. |
get_transactional_email | Eine Transaktions-E-Mail nach ID oder Slug lesen. |
create_transactional_email | Eine Transaktionsvorlage aus einem Prompt, HTML oder Blöcken erstellen. |
update_transactional_email | Transaktionsmetadaten oder Textinhalte aktualisieren. |
send_email | Eine 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
| Tool | Beschreibung |
|---|---|
get_stats | Übersichtsstatistiken für 7d, 30d oder 90d abrufen; nach strukturellem E-Mail-Typ filtern. |
get_transactional_stats | Alle Zeiträume oder zeitlich begrenzte Metriken für eine gespeicherte transaktionale E-Mail nach ID oder Slug abrufen. |
get_campaign_stats | Kampagnenleistung, Antwortmetriken, zugeordnete Conversion-Ziele und Poll/NPS-Zusammenfassungen abrufen. |
list_poll_responses | Die neueste Poll/NPS-Antwort jedes Befragten pro Block mit Identität und Antwortzeit auflisten. |
get_sequence_stats | Aggregierte und schrittweise Sequenzleistung sowie Live-Anzahl aktiver/wartender Einschreibungen nach aktuellem Knoten abrufen. |
list_email_metrics | Kampagnen- und Sequenzschritt-Trichter, Antworten, Conversions und Umsatz vergleichen, einschließlich sequenzübergreifender Schritte. |
list_campaign_events | Paginierte Roh-E-Mail-Ereignisse für eine Kampagne auflisten. |
list_sequence_events | Paginierte Rohereignisse für eine Sequenz auflisten, optional auf einen E-Mail-Schritt begrenzt. |
get_subscriber_activity | E-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
| Tool | Beschreibung |
|---|---|
list_team_members | Teammitglieder und ausstehende Einladungen auflisten. |
invite_team_member | Einen Teammitarbeiter als Admin oder Betrachter einladen, mit optionalem Abrechnungszugriff. |
cancel_team_invitation | Eine ausstehende Teameinladung stornieren. |
list_conversations | Antwortkonversationen von Abonnenten mit Status- und Ungelesen-Filtern auflisten. |
get_conversation | Eine Konversation und ihren Nachrichtenverlauf lesen. |
reply_to_conversation | Eine ausgehende Antwort in die Warteschlange stellen oder eine interne Notiz hinzufügen. |
update_conversation_status | Eine Konversation öffnen oder schließen. |
mark_conversation_read | Alle Nachrichten in einer Konversation als gelesen markieren. |
list_webhooks | Ausgehende Webhook-Endpunkte auflisten. |
create_webhook | Einen Endpunkt erstellen und sein einmaliges Signing-Geheimnis auf Standard-MCP zurückgeben; auf der OpenAI-geprüften Route weggelassen. |
update_webhook | Webhook-Name, URL, Ereignisse oder Status aktualisieren. |
delete_webhook | Einen Webhook-Endpunkt und den Zustellungsverlauf dauerhaft löschen. |
test_webhook | Ein Testereignis an einen Webhook-Endpunkt senden. |
list_webhook_deliveries | Kürzliche Zustellversuche für einen Webhook auflisten. |
replay_webhook_delivery | Eine 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
| Tool | Beschreibung |
|---|---|
generate_email | Marken-E-Mail-Blöcke aus einer Eingabeaufforderung generieren. |
generate_sequence | Veralteter Alias, der einen zielbasierten Sequenzentwurf beibehält. |
generate_subject_lines | A/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
| Tool | Beschreibung |
|---|---|
generate_sms | SMS-Text aus einer Eingabeaufforderung generieren. |
get_sms_settings | SMS-Add-on-Bereitschaft, Guthaben, Standardeinstellungen und bereitgestellte Nummern lesen. |
get_sms_usage | Sendungen, Zustellungsergebnisse, belastete Credits, letzte Aktivität und Testsendungen nach Nummer vergleichen. |
update_sms_number_label | Bezeichnung einer Nummer oder markenspezifische Präfix-Überschreibung pro Nummer aktualisieren. |
release_sms_number | Eine Nummer dauerhaft an den Anbieter zurückgeben und ihren Workspace-Slot freigeben. |
send_test_sms | Eine 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.
| Ressource | Beschreibung |
|---|---|
sequenzy://dashboard | Live-Übersichtsstatistiken für die letzten 7 Tage. |
sequenzy://company | Aktuelle Unternehmens- und Lokalisierungseinstellungen. |
sequenzy://campaigns/recent | Letzte 10 Kampagnen mit Status und Basisstatistiken. |
sequenzy://subscribers/recent | Zuletzt hinzugefügte Abonnenten. |
sequenzy://subscribers/engaged | Aktivste oder engagierteste Abonnenten. |
sequenzy://sequences | Alle Sequenzen mit Status. |
sequenzy://templates | Vorlagen mit Lokalisierungsstatus. |
sequenzy://segments | Gespeicherte Segmente mit Abonnentenzahlen. |
sequenzy://tags | Tags mit Nutzungszahlen. |
sequenzy://health | Zustellbarkeitsmetriken und Gesundheitsstatus. |
sequenzy://email-blocks | Feldreferenz für jeden E-Mail-Blocktyp. |
sequenzy://app-routes | Dashboard-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
npxin 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 einfachetype: "object"-Schemata sein. - Veröffentlichen Sie
anyOfnicht an beliebiger Stelle in Toolschemata. - Platzieren Sie
oneOf,allOf,enumodernotnicht 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:
- Remote-MCP-Endpunkt:
https://api.sequenzy.com/v1/mcp - Agentenfähigkeits-Manifest:
agent-capability.json - A2A-ähnliche Agentenkarte:
.well-known/agent-card.json - OpenClaw/Moltbot-Fähigkeitsmetadaten:
openclaw/skill.json - OpenClaw/Moltbot-Betriebsanleitung:
openclaw/SKILL.md
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.