Sequenzy MCP
offiziellE-Mail-Marketing-Tool für SaaS
Was kann man mit Sequenzy MCP machen?
- Import und Abonnenten suchen — Bis zu 5.000 CRM-Datensätze über
create_subscriber_importin die Warteschlange stellen oder Kontakte nach Tags, Listen, Segmenten oder benutzerdefinierten Attributen durchsuchen. - Segmente mit Meta-Zielgruppen synchronisieren — Ein gespeichertes Segment planmäßig mit
create_audience_syncan eine benutzerdefinierte Meta-Zielgruppe für Facebook/Instagram-Retargeting übertragen. - Kampagnen entwerfen und planen — Aufforderung zum Entwerfen, Aktualisieren, Planen oder Prüfen von Kampagnen, einschließlich aufgelöster Zielgruppenvorschauen und Von/Antwort-an/CC/BCC-Identitäten.
- Produktlieferdateien anhängen —
attach_product_fileverwenden, damit kaufausgelöste E-Mails über Merge-Tags Download-Links enthalten. - Sendepausen diagnostizieren —
get_sending_statusaufrufen, um herauszufinden, warum das Senden pausiert ist, dann nach Bestätigung der Listenbereinigungresume_sendingausführen.
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
- Abonnenten, Tags, Listen und dynamische Segmente verwalten, einschließlich Bulk-Tag-Abgleich und synthetischer Ereignistests.
- Segmente mit Meta Custom Audiences für Facebook- und Instagram-Retargeting synchronisieren.
- Produkte verwalten und digitale Lieferdateien für Kaufautomatisierungen anhängen.
- Gehostete E-Mail-Bilder mit Alt-Text und wiederverwendbaren responsiven Zuschnitt-Einstellungen hochladen.
- Kampagnen entwerfen, aktualisieren, planen und prüfen, einschließlich aufgelöster Zielgruppenvorschauen sowie From-, Reply-To-, CC- und BCC-Identitäten.
- Kampagnen, Sequenzschritte und Vorlagen in ihr exaktes E-Mail-sicheres HTML rendern, ohne zu senden.
- One-Click-Poll- und NPS-Umfrageblöcke zu E-Mails hinzufügen und Kampagnenantwortübersichten prüfen.
- E-Mail-Sequenzen erstellen und bearbeiten, einschließlich ereignisgesteuerter und Segment-Eintritts-Automatisierungen, eigenschaftsgefilterter Ereignis-Stoppbedingungen nach der Einschreibung, Sendeidentitätsüberschreibungen, Umstrukturierung bestehender Graphen und direkter Test-Sends von Schritten an interne Prüfer.
- Kampagnen abbrechen, pausieren, fortsetzen, duplizieren oder löschen und Kontakte in Sequenzen einschreiben.
- Transaktionale E-Mail-Vorlagen verwalten und einzelne transaktionale E-Mails senden.
- Lokalisierte Vorlagenvarianten bereitstellen oder KI-Übersetzung für aktivierte Sprachen in die Warteschlange stellen.
- Landingpages erstellen, bearbeiten, veröffentlichen, zurückziehen und löschen.
- Listenbezogene gespeicherte Anmeldeformulare erstellen und client-sichere statische Site-Embeds zurückgeben.
- Gespeicherte Anmelde-Popups erstellen, ausrichten, veröffentlichen, duplizieren und bereitstellen.
- Benutzerdefinierte Domains für veröffentlichte Landingpages verbinden und verifizieren.
- Teameinladungen, Posteingangskonversationen und ausgehende Webhook-Endpunkte verwalten.
- E-Mail-Texte, Betreffzeilen und mehrstufige Sequenzen generieren.
- Analysen, Abonnentenaktivität, Zustellbarkeitsstatus, unternehmensweite Sende-Pausen, Integrationen, Sendeidentitäten, Tracking-Einstellungen und Dashboard-URLs prüfen.
- Diagnostizieren, warum das Senden pausiert ist, und berechtigte Hard-Bounce-Pausen nach bestätigter Listenbereinigung wiederherstellen.
- Bounce-Unterdrückung für exakte Empfänger prüfen und bereinigen, ohne die gemeinsame SES-Unterdrückungsliste offenzulegen.
- Unternehmensproduktinformationen, kontoweite Sendeidentitäts-Standardwerte konfigurieren, einzelne Absender- und Antwort-Profile umbenennen, Absenderdomains verwalten und Integrationsbeispiele für gängige Frameworks prüfen.
Jedes veröffentlichte MCP-Tool enthält explizite readOnlyHint-, destructiveHint- und openWorldHint-Annotationen, damit kompatible Clients genaue Tool-Nutzungsmöglichkeiten anzeigen können. Tools veröffentlichen außerdem outputSchema-Definitionen und geben structuredContent zurück, sodass 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, wenn möglich, automatisch.
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
Remote-Clients sollten sich, wenn unterstützt, über den Sequenzy-OAuth-Flow authentifizieren. Lokale und Automatisierungs-Clients können weiterhin das stdio-Paket unten mit SEQUENZY_API_KEY verwenden.
Maschinenlesbare Discovery-Dateien:
- MCP-Server-Manifest:
server.json - Agent-Karte:
.well-known/agent-card.json - Agent-Fähigkeits-Manifest:
agent-capability.json - OpenClaw-Skill-Metadaten:
openclaw/skill.json
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
Fügen Sie dies 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-Struktur wie bei 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 aus und setzen Sie SEQUENZY_API_KEY.
API-Schlüssel erhalten
- Öffnen Sie das Sequenzy-Dashboard.
- Verwenden Sie den MCP-Einrichtungsflow, um einen persönlichen Schlüssel zu erstellen, oder öffnen Sie Einstellungen -> API Keys, 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 ebenfalls ohne Offenlegung von Geheimnissen bereinigt werden. 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 dauerhafte Operation. Listen- und Widerrufsantworten enthalten niemals den Klartextschlüssel oder den gespeicherten Schlüssel-Hash.
Fehlende API-Schlüssel-Berechtigungen beheben
Wenn ein Tool einen fehlenden Bereich wie campaigns:read oder templates:write meldet, rufen Sie get_account auf. Dessen apiKeyPermissions-Feld listet die aktuelle Schlüsselidentität und den Typ, Bereiche, häufige fehlende Marketing-Lesebereiche und einen direkten manageUrl auf. Persönliche Schlüssel öffnen Account API Keys; Unternehmensschlüssel öffnen die API-Keys-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-Keys-Seite.
Berechtigungen sind direkt bearbeitbar. Öffnen Sie also manageUrl, aktualisieren Sie den aktiven Schlüssel und wiederholen Sie das fehlgeschlagene Tool, ohne die Anmeldedaten 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 Kontoebenen-Seite bearbeitet werden, da dieses Tool nur Unternehmensschlüssel verwaltet. Dessen scopes- und preset-Eingaben ersetzen die gesamte Berechtigungsauswahl, anstatt sie zusammenzuführen. Bewahren Sie daher jeden weiterhin benötigten vorhandenen Bereich auf. Gehostete OAuth-Verbindungen können alternativ getrennt und mit umfassenderen Berechtigungen neu autorisiert werden.
Die Standardvoreinstellung Sicherer Agentenzugriff umfasst lists:write und tags:write, sodass Agenten Listen- und Tag-Definitionen erstellen und aktualisieren können, und sie umfasst subscribers:tag zum Anwenden von Tags auf bestehende Kontakte. Sie umfasst nicht subscribers:write, sodass sie keine Kontakte zu Listen hinzufügen oder aus Listen entfernen kann. Das Löschen einer Liste oder eines Tags erfordert weiterhin die passende lists:delete- oder tags:delete-Berechtigung.
Die KI-Entwurfsvoreinstellung umfasst subscribers:write, sodass Entwurfsagenten eine Liste aufbauen und erstellen können. Importe, die listIds anwenden, benötigen außerdem lists:write; Sequenz-Einschreibung oder Double-Opt-in-Zustellung benötigt zusätzlich automations:trigger.
Tools
Dieser Server stellt derzeit 201 MCP-Tools bereit.
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 Abonnentenfiltern oder Sortieroptionen.
Konto, Unternehmen, Einrichtung
| Tool | Beschreibung |
|---|---|
get_account | Kontoinformationen, verfügbare Unternehmen, aktuelle Schlüsselberechtigungen und die URL zur Verwaltung der API-Schlüssel 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, Domains und Details zu gesendeten E-Mails erstellen. |
create_company | Ein neues Unternehmen oder eine neue Marke erstellen. |
get_company | Unternehmensdetails, Produktinformationen, Markenkontext, Lokalisierung, Antwortverfolgungseinstellungen und aktuelle Standardwerte für Von/Antwort-an lesen. |
update_company | Produktinformationen, Markenkontext, E-Mail-Design, Antwortverfolgung und unternehmensweite Standardwerte oder Namen für Von/Antwort-an-Profile bearbeiten. |
get_sync_rules | Die Ereignis-zu-Tag-Regeln des Unternehmens lesen und ob es die geerbte Plattformvoreinstellung verwendet. |
update_sync_rules | Alle Synchronisierungsregeln ersetzen; [] übergeben, um sie zu deaktivieren, oder null, um die SaaS/E-Commerce-Plattformvoreinstellung zu aktivieren. |
get_shopify_automation_settings | Einstellungen für Browser-Abbruch, Warenkorb-Abbruch und Preisabfall für den verbundenen Shopify-Shop lesen. |
update_shopify_automation_settings | Shopify-Automatisierungseinstellungen teilweise aktualisieren oder einen einzelnen Abschnitt auf die Plattformstandardwerte zurücksetzen. |
create_api_key | Einen API-Schlüssel für ein Unternehmen erstellen, optional mit Berechtigungsvoreinstellung oder expliziten Bereichen. |
list_api_keys | Unternehmens-API-Schlüssel als nicht geheime Metadaten auflisten, um eine sichere Identifizierung und Bereinigung zu ermöglichen. |
revoke_api_key | Einen genauen Unternehmens-API-Schlüssel anhand der ID dauerhaft widerrufen, nachdem er mit list_api_keys überprüft wurde. |
delete_api_key | Kompatibilitätsalias für revoke_api_key. |
list_websites | Sende-Domains mit gespeichertem aggregiertem Status, SPF, DKIM und MAIL FROM auflisten. |
add_sending_domain | Eine Sende-Domain hinzufügen und die kohortenspezifischen DNS-Einrichtungsdatensätze zurückgeben. |
add_website | Kompatibilitätsalias für add_sending_domain. |
check_website | Die gespeicherten SPF-, DKIM-, MAIL-FROM- und aggregierten Verifizierungsdetails einer Sende-Domain lesen. |
verify_sending_domain | Eine neue DNS/Provider-Verifizierung der Sende-Domain durchfü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, Überprüfungsstufen und Korrekturmaßnahmen. |
resume_sending | Eine berechtigte Hard-Bounce-Pause wiederherstellen, nachdem ausdrücklich bestätigt wurde, dass die Liste bereinigt wurde. |
get_tracking_settings | Einstellungen für Öffnungen, Klicks, Abmeldungen, Attribution, UTM, Klick-Domain und Antwortverfolgung lesen. |
get_integration_guide | Framework-spezifische Integrationsbeispiele abrufen. |
get_integration | Eine verbundene Integration, ihre Ereignisverdrahtung, aktuelle Aktivität und Empfehlungen untersuchen. |
list_integration_capabilities | Anbieterfunktionen vergleichen, unabhängig davon, ob sie verbunden sind. |
list_integration_activity | Das aufbewahrte integrationsspezifische Webhook- und Synchronisierungsaktivitätsprotokoll lesen. |
set_integration_sync_enabled | Massenimporte und Backfills aktivieren oder deaktivieren, während Live-Webhooks verbunden bleiben. |
sync_integration | Einen Umsatz-Backfill des Zahlungsanbieters oder einen Supabase-Benutzer-Backfill aus der gespeicherten Tabellenkonfiguration 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 | Den Storefront-Pixel von Shopify installieren oder neu ausrichten; idempotent, wenn er bereits aktuell ist. |
list_sender_profiles | Absender- und Antwort-an-Profile, Standardwerte und Bereitschaft der Sende-Domain auflisten. |
update_sender_profile | Ein Absender- oder Antwort-an-Profil umbenennen, ohne die Konto-Standardwerte zu ändern. |
get_notification_preferences | Die pro Unternehmen geltenden Kontobenachrichtigungseinstellungen und unterstützten Modi des aktuellen Benutzers lesen. |
update_notification_preferences | Die Zustellmodi für Kontobenachrichtigungen des aktuellen Benutzers aktualisieren, ohne Teammitglieder zu beeinflussen. |
get_sending_status hält den Postgres-gestützten Pausenzustand, die Überprüfungsstufen und die Korrekturmaßnahmen verfügbar, wenn die Sender-Health-Analysen vorübergehend nicht verfügbar sind; in diesem degradierten Fall ist senderHealth null.
Für Supabase verwendet sync_integration das Projekt, Schema, Tabelle, Listenauswahl und Einwilligungszuordnungen, die im Dashboard gespeichert sind. Es kann keine beliebige Tabelle ansprechen. 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 nach Fortschritt und Ergebnissen auf Zeilenebene ab.
Für eine neue Sende-Domain rufen Sie add_sending_domain auf, veröffentlichen Sie die DNS-Einträge im zurückgegebenen website.dnsRecords, warten Sie auf die DNS-Verbreitung und rufen Sie dann verify_sending_domain auf. Veröffentlichen Sie jeden zurückgegebenen Eintrag, anstatt einen festen Anbieter oder eine feste Anzahl von Einträgen anzunehmen: Einheitliche Domains enthalten erforderliches DMARC, während Legacy-Domains Amazon-SES-MAIL-FROM- und Inbound-Antwort-Einträge zurückgeben können. Wenn eine Verifizierung vor der Erstellung versucht wird, verweist der Fehler auf add_sending_domain mit der angeforderten Domain zurück.
Für Shopify rufen Sie get_integration_pixel auf, bevor Sie sich auf Produktansichten, Warenkorbaktivitäten oder Browser-Abbruch-Trigger verlassen. Das Ergebnis wird live von Shopify gelesen, da Händler den Pixel unabhängig entfernen können. Wenn pixel.healthy falsch ist, benennt dependentEvents die Trigger, die nicht eintreffen können; rufen Sie activate_integration_pixel auf, um den Pixel zu installieren oder neu auszurichten. Die Aktivierung ist idempotent, und Ereignisse beginnen beim nächsten Storefront-Besuch, anstatt rückwirkend importiert zu werden.
Neue Unternehmen starten ohne Synchronisierungsregeln. Die geerbte Voreinstellung bleibt für SaaS/E-Commerce-Unternehmen verfügbar, indem null an update_sync_rules übergeben wird; Dienstleistungs- und Beratungsunternehmen sollten normalerweise [] beibehalten 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 den Anzeigenamen zu ändern. Übergeben Sie type: "reply" für ein Antwort-an-Profil; Absender ist die Standardeinstellung. Die Adresse, die Sende-Domain und die unternehmensweiten Standardauswahlen für Von/Antwort-an bleiben unverändert. Das Umbenennen erfordert den Bereich companies:manage.
Der Shopify-Warenkorb-Abbruch ist standardmäßig aktiviert. Er feuert ecommerce.cart_abandoned nach einer Stunde Warenkorb-Inaktivität, mit einer 24-stündigen Abklingzeit pro Abonnent. Verwenden Sie update_shopify_automation_settings, um die Felder cartAbandonment.enabled, delayHours oder cooldownHours zu ändern; übergeben Sie cartAbandonment: null, um diese Standardwerte wiederherzustellen, ohne die Einstellungen für Browser-Abbruch oder Preisabfall 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; der Status ist nur bei der Erstellung relevant, verwenden Sie daher update_subscriber für einen bestehenden Kontakt. |
create_subscriber_import | Bis zu 5.000 vollständige CRM-Datensätze mit Namen, IDs, Telefonen, Status, Tags, Listen und typisierten benutzerdefinierten Attributen in die Warteschlange stellen. |
get_subscriber_import | Fortschritt, Zeilenergebniszahlen und Fehlerzusammenfassungen für einen importierten Import lesen. |
update_subscriber | Native Profil- und Telefonfelder, SMS-Einwilligung, Attribute, Tags oder globalen Status aktualisieren. |
remove_subscriber | Abmelden, während die Unterdrückungshistorie erhalten bleibt, oder nur mit hardDelete: true dauerhaft löschen. |
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 so ausgeben, wie es eine Integration tun würde, Synchronisierungsregeln anwenden und Sequenz-Trigger abgleichen. |
trigger_subscriber_events | Mehrere geordnete benutzerdefinierte Ereignisse für einen Abonnenten ausgeben. |
bulk_add_subscriber_tags | Tags zu bis zu 500 bestehenden Abonnenten hinzufügen, ohne unbekannte Kontakte zu erstellen. |
bulk_remove_subscriber_tags | Tags von bis zu 500 bestehenden Abonnenten entfernen, ohne unbekannte Kontakte zu erstellen. |
Verwenden Sie create_subscriber_import für das CRM-Onboarding anstatt über add_subscriber zu iterieren. 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 weiterhin Zeilenfehler enthalten, überprüfen Sie daher failedCount und failedReasons. Verwenden Sie optInMode: "confirmed" nur, wenn die Einwilligung bereits verifiziert wurde.
Für Compliance-Unterdrückung 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 zum ersten Mal erstellt wird, und ein nicht übereinstimmendes übersprungenes Ergebnis wird als Fehler gemeldet.
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.
Produkte & Digitale Lieferung
| Tool | Beschreibung |
|---|---|
list_products | Synchronisierte Produkte aus Stripe, Shopify, WooCommerce, manuellen oder Commerce-API-Daten auflisten. |
upsert_products | Bis zu 100 Commerce-API-Produkte erstellen oder aktualisieren, die über Ihre Produkt-ID identifiziert werden. |
delete_product | Ein Produkt löschen, das zuvor über die Commerce-API übertragen wurde. |
attach_product_file | Eine gehostete oder lokal hochgeladene Lieferdatei an ein Produkt anhängen. |
remove_product_file | Eine angehängte Produkt-Lieferdatei entfernen. |
sync_products | Eine Synchronisierung des Stripe-Produktkatalogs in die Warteschlange stellen, optional mit Auswahl einer Integration anhand der ID. |
Nachdem eine Produkt-Lieferdatei angehängt wurde, umfassen passende Kaufereignisse 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, wobei die Stripe-Preis-ID in variantId enthalten ist. Verwenden Sie diese ID, um in einer Kaufsequenz einen genauen Preis anzusprechen, auch wenn es nicht der Standardpreis des Produkts ist.
Bild-Assets
| Tool | Beschreibung |
|---|---|
upload_image_asset | Ein E-Mail-Bild hochladen und den gehosteten Medieneintrag sowie einen einsatzbereiten Bildblock zurückgeben. |
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, und verwenden Sie dann displayWidthPercent, cropHeight, objectFit (cover oder contain) und align, um die Screenshot-Darstellung 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 an den von SEQUENZY_API_URL konfigurierten Ursprung hochgeladen, auch 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 | Alle Tags auflisten. |
create_tag | Eine Tag-Definition mit einer optionalen Farbe erstellen. |
update_tag | Eine Tag-Farbe aktualisieren. |
delete_tag | Ein Tag löschen und es von Abonnenten entfernen. |
list_lists | Abonnentenlisten auflisten. |
create_list | Eine Abonnentenliste erstellen. |
update_list | Eine Abonnentenliste umbenennen oder beschreiben. |
delete_list | Eine Abonnentenliste löschen. |
add_subscribers_to_list | Bis zu 500 Abonnenten aus einem E-Mail-Array zu einer Liste hinzufügen. |
remove_subscribers_from_list | Bis zu 500 Abonnenten aus einer Liste entfernen. |
list_segments | Gespeicherte Segmente und Zählungen auflisten. |
create_segment | Gespeicherte Segmente aus Filtern oder verschachtelten UND/ODER-Gruppen erstellen. |
update_segment | Segmentname, Filter, Stammgruppe oder Verknüpfungsoperator aktualisieren. |
delete_segment | Ein gespeichertes Segment löschen. |
get_segment_count | Die aktive Abonnentenzahl für ein Segment anzeigen. |
Für Abonnentenexporte akzeptiert search_subscribers listId, exakte listName oder list (zuerst ID, 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 passende 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 Massenbefüllung von Listen 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. Die standardmäßigen API-Ratenlimits gelten weiterhin: 100 Anfragen pro Minute pro API-Schlüssel und 20 Anfragen pro Sekunde als 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, Mitgliedschaft in gespeicherten Segmenten, 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.
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 Schwellenwertoperatoren 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. 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; Kampagnenbereiche können nicht mit Zähloperatoren kombiniert werden.
Zielgruppen-Synchronisierungen (Meta Ads)
| Tool | Beschreibung |
|---|---|
list_audience_syncs | Segment-zu-Zielgruppen-Synchronisierungen mit Zeitplan und letztem Synchronisierungsstatus auflisten. |
list_ad_accounts | Die für die Synchronisierung verfügbaren Meta-Werbekonten auflisten. |
create_audience_sync | Ein Segment nach Zeitplan an eine Meta-Benutzerdefinierte Zielgruppe übertragen. |
update_audience_sync | Synchronisierungshäufigkeit ändern (hourly, daily, weekly) oder pausieren/fortsetzen. |
delete_audience_sync | Eine Synchronisierungszuordnung entfernen; die Meta-Zielgruppe selbst bleibt erhalten. |
sync_audience_now | Einen sofortigen Upload außerhalb des regulären Zeitplans auslösen. |
Erfordert, dass die Meta-Ads-Integration im Sequenzy-Dashboard verbunden ist (Einstellungen -> Integrationen). create_audience_sync akzeptiert ein vorhandenes Segment (segmentId) oder eine vorgefertigte 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 wird sofort ausgeführt.
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 Anzeigenauslieferung verwendet werden kann.
Vorlagen
| Tool | Beschreibung |
|---|---|
list_templates | Vorlagen mit Lokalisierungsstatus, Label-Filterung und Paginierung auflisten. |
get_template | Vorlagendetails, Inhalt und lokalisierte Varianten lesen. |
create_template | Vorlagen aus einer Eingabeaufforderung, HTML oder Sequenzy-Blöcken erstellen. |
update_template | Vorlagenmetadaten, Posteingangsvorschautext, Labels, HTML oder Blöcke aktualisieren. |
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ären Gebietsschemata in die Warteschlange stellen. |
delete_template | Eine Vorlage löschen. |
list_templates gibt standardmäßig 50 E-Mail-Inhalte zuerst nach neuesten zurück und akzeptiert eine limit bis zu 100. Erhöhen Sie offset um pagination.count, während pagination.hasMore wahr ist; pagination.total meldet die vollständige Anzahl der Übereinstimmungen, einschließlich Kampagnen- und Transaktions-E-Mail-Inhalten.
Für völlig neue Inhalte, die in natürlicher Sprache angefordert werden, übergeben Sie prompt, damit Sequenzy serverseitig markenbezogene native Blöcke generiert. Verwenden Sie blocks nur für fertige, vom Aufrufer bereitgestellte Sequenzy-Inhalte, und verwenden Sie 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 übersetzter Text aus Ihrem eigenen Lokalisierungsworkflow stammt. Es erfordert ein aktiviertes nicht-primäres locale, ein lokalisiertes subject und genau eines von html oder blocks. Verwenden Sie sync_template_localizations, um Sequenzy zu bitten, ausgewählte Gebietsschemata zu übersetzen; lassen Sie locales weg, um jedes aktivierte nicht-primäre Gebietsschema zu synchronisieren. Die explizite Synchronisierung funktioniert auch, wenn die automatische Lokalisierung beim Speichern deaktiviert ist.
A/B-Tests
| Tool | Beschreibung |
|---|---|
list_ab_tests | A/B-Tests und Varianten auflisten, optional nach Sequenz gefiltert. |
get_ab_test | Effektive Einstellungen, Varianten und Lokalisierungsstatus abrufen. |
get_ab_test_stats | Aggregierte und variantenspezifische Statistiken abrufen. |
restart_ab_test | Einen gestoppten oder abgeschlossenen A/B-Test neu starten. |
update_ab_test | Einstellungen zur Gewinnerauswahl von Kampagne oder Sequenz aktualisieren. |
update_ab_test_variant | Betreff, Vorschautext, HTML oder Blöcke einer Entwurfsvariante aktualisieren. |
create_ab_test | Einen A/B-Test für Kampagne oder Sequenz erstellen. |
add_ab_test_variant | Eine Variante zu einem bestehenden A/B-Test hinzufügen. |
delete_ab_test_variant | Eine Entwurfsvariante eines A/B-Tests löschen. |
delete_ab_test | Einen A/B-Test löschen. |
Verwenden Sie get_ab_test, um das effektive settings-Objekt zu kopieren und Varianten-IDs vor der Bearbeitung zu ermitteln. Kampagneneinstellungen verwenden testPercentage, testDurationMinutes und winnerCriteria; Sequenzeinstellungen verwenden testType, winnerThreshold und winnerCriteria. Die veralteten Sequenzwerte testPercentage: 100 und testDurationMinutes: 0 sind Kompatibilitäts-Sentinels, keine Laufzeiteinstellungen. 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 wandelt einen Sequenz-E-Mail-Knoten in action_ab_test um. Eine explizite Sequenz-winnerCriteria überschreibt den testType-Standard, sodass Inhaltsvarianten weiterhin nach Ö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 bearbeitet, hinzugefügt oder entfernt werden, solange der Test ein Entwurf ist; wenn die übergeordnete Sequenz aktiv ist, erfordern update_ab_test_variant, add_ab_test_variant und delete_ab_test_variant ebenfalls confirmLiveChange: true, da sie die Live-Rotation sofort ändern.
Kampagnen
| Tool | Beschreibung |
|---|---|
list_campaigns | Paginierte Kampagnen nach Status oder Label auflisten, einschließlich Prüfer-Feedback für abgelehnte Kampagnen. |
get_campaign | Details, Statistiken und Prüfer-Feedback für eine abgelehnte Kampagne abrufen. |
get_campaign_audience | Gespeichertes Targeting, fehlende Referenzen, eine Zusammenfassung in einfacher Sprache und die Live-Empfängerzahl auflösen. |
list_email_sends | Aktuellen Zustellverlauf mit Ressourcen-IDs und URLs durchsuchen, optional auf einen Sequenzschritt begrenzt. |
get_email_send | Eine gequeuete, Test-, gesendete, unterdrückte oder fehlgeschlagene Zustellung anhand der dauerhaften E-Mail-Sende-ID überprüfen. |
get_recipient_suppression | Lokale und regionale SES-Unterdrückung für genau einen Empfänger prüfen. |
remove_recipient_suppression | Veraltete Bounce-Unterdrückung für einen mit einem Unternehmen verbundenen Empfänger entfernen. |
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, From, Reply-To, CC und BCC. |
schedule_campaign | Einen Entwurf planen oder eine bestehende geplante Kampagne umplanen. |
send_test_email | Eine Test-E-Mail an eine Adresse senden. |
render_email | Eine Kampagne, einen Sequenz-E-Mail-Schritt oder eine Vorlage ohne Senden als exaktes, E-Mail-sicheres HTML rendern. |
cancel_campaign | Eine geplante oder gerade gesendete 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-Resend für 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 persistiert und
bleiben Entwürfe. Verwenden Sie templateId, blocks oder html nur beim Kopieren oder
Bewahren vorhandener Inhalte, nicht wenn der Agent sie erstellen soll. Lassen Sie alle
Inhaltsfelder weg, um einen leeren Entwurf zur späteren Bearbeitung zu erstellen.
Für Kampagnen- und Sequenzebenen-Identitäten wählt fromEmail zusammen mit 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 replyToName von diesem
Namen abweicht, bleibt der gespeicherte Name erhalten und die erfolgreiche Antwort enthält
Wiederherstellungshinweise 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, Zustellstatus, Typ, Bounce-Typ oder Quelle zu ermitteln; übergeben Sie eine ID an get_email_send, um
status, errorMessage, den gespeicherten Textkörper und Zustellereignisse zu überprüfen. Zustelllisten-
Zeilen werden 14 Tage lang aufbewahrt. Warteschlangenaufträge sind interne Ausführungsdetails und
werden nicht über den MCP-Vertrag offengelegt. Jede zurückgegebene Zustellung hat einen direkten
Dashboard-url. Verwenden Sie get_recipient_suppression vor der Bereinigung und dann
remove_recipient_suppression erst nach Bestätigung, dass ein Hard-Bounce-Postfach wieder
funktioniert. Die Bereinigung entfernt Bounce-Einträge, niemals jedoch Beschwerde- oder
Abbestellschutz.
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-/Listenmitgliedschaft, 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 Abonnentenabgleich 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 mit Standard zur primary-Variante. Bild-widthType akzeptiert
percent oder px.
Roh-html wird als ein undurchsichtiger Block gespeichert. Es bewahrt bereitgestelltes Markup, fügt aber
kein Unternehmenslogo, native gebrandete Abschnitte oder themenbasierte Blockgestaltung hinzu.
Verwenden Sie prompt für einen neuen gebrandeten Entwurf oder blocks für eine editor-native Gestaltung; die MCP-
Erstellung enthält 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 dessen 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 standardmäßige E-Mail-Theme des Unternehmens über
emailTheme (presetId, colors, typography, layout). Theme-Aktualisierungen sind
teilweise – weggelassene Felder behalten ihren aktuellen Wert (oder den Standard der Vorlage) und
numerische Werte werden auf unterstützte Bereiche begrenzt. Übergeben Sie emailTheme: null, um
das Unternehmen auf das Standard-Theme der Plattform zurückzusetzen.
Antwortverfolgung ist auf denselben Unternehmenswerkzeugen verfügbar. Verwenden Sie
replyTrackingEnabled, replyTrackingDomainMode (sequenzy oder custom) und
forwardReplies mit update_company. Unternehmensablesungen geben außerdem den aktuellen
schreibgeschützten replyRetentionDays-Wert zurück.
Umfragen und NPS-Befragungen sind native E-Mail-Blöcke, funktionieren also überall dort, wo ein E-Mail-
Werkzeug blocks akzeptiert, einschließlich Kampagnen, Vorlagen, A/B-Varianten,
Transaktionsvorlagen 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
zugeordnet 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 ist immer 0-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 Textoptionen-Umfrage, um eine gehostete Seite
zu öffnen, auf der Empfänger mehrere Antworten ankreuzen und die gesamte Auswahl auf einmal speichern können.
Das Abonnentenattribut speichert die Liste ausgewählter Werte, daher sollten Attributsegmente
contains verwenden. Mehrfachauswahl-Umfragen können keine Optionsbilder oder
Konfigurationen verwenden, deren codierte signierte Links das zustellungssichere Größenlimit überschreiten.
Kampagnenumfrage-Zusammenfassungen setzen allowMultiple: true, verwenden die Befragtenanzahl für
totalResponses und können Antwortprozentsätze melden, die über 100 % summieren.
Umfrageblöcke unterstützen auch markenspezifisches Styling. accentColor färbt jedes
Erscheinungsbild neu ein, einschließlich "brutal"; optionRadius setzt die Ecken der Antwort-Schaltflächen in
Pixel (0 ist quadratisch), unabhängig von der styles.borderRadius des Containers;
und questionColor färbt nur die Frage neu.
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 Pixel, Gewichte reichen von 100 bis 900 und Texttransformationen sind
"none" oder "uppercase".
Gespeicherte Formulare
| Werkzeug | Beschreibung |
|---|---|
list_forms | Gespeicherte Formulare mit ihren serververwalteten Zielgruppeneinstellungen, Inhaltsblöcken und öffentlichen Aktions-URLs auflisten. |
create_form | Ein gespeichertes Formular für eine oder mehrere Listen erstellen und veröffentlichen, mit optionalen Tags, Theme und Erfolgsverhalten. |
update_form | Zielgruppe, Text, Theme, Erfolgsverhalten oder das vollständige Inhaltsblock-Array eines gespeicherten Formulars teilweise aktualisieren. |
get_form_embed | Die öffentliche Aktions-URL, gehostetes JavaScript, minimales natives Formular und Fetch-Beispiel für ein gespeichertes Formular zurückgeben. |
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
passendes Formular existiert, und rufen Sie dann get_form_embed auf. Die 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 Workspaces; kostenpflichtige
Workspaces 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
Theme-Felder werden in das aktuelle Theme eingefügt. Übergeben Sie ein leeres
tagIds-Array, um Tags zu löschen, oder ein leeres
redirectUrl, um das Bestätigungsnachrichten-Verhalten wiederherzustellen. Das Feld
blocks ist ein vollständiger Ersatz. Lesen Sie daher zuerst den aktuellen Inhalt
mit list_forms und behalten Sie genau ein E-Mail-Feld und eine Senden-Schaltfläche bei.
Gespeicherte Popups
| Werkzeug | Beschreibung |
|---|---|
list_popups | Gespeicherte Popups mit Status und Engagement-Statistiken auflisten, optional mit vollständigem Inhalt. |
get_popup | Blöcke, Trigger, Targeting, Zeitplan, Häufigkeit, Theme und veröffentlichten Einbettungscode eines Popups abrufen. |
create_popup | Ein Popup aus einer Startvorlage erstellen, standardmäßig veröffentlicht, und sein Bereitstellungsskript zurückgeben. |
update_popup | Popup-Text, Zielgruppe, Verhalten, Theme, Blöcke oder Veröffentlichungsstatus teilweise aktualisieren. |
get_popup_embed | Geheimnisfreie HTML-, React/Next.js-, WordPress- und Shopify-Einbettungs-Snippets zurückgeben. |
duplicate_popup | Ein Popup in einen Entwurf mit unabhängigen Engagement-Zählern kopieren. |
delete_popup | Ein Popup und seine Engagement-Zähler dauerhaft löschen. |
Die Popup-Bereitstellung verwendet ein öffentliches Script-Tag; API-Schlüssel,
Zielgruppeneinstellungen, Trigger, Targeting, Zeitplanung und Häufigkeitsregeln bleiben
serverseitig. Popups erfassen standardmäßig in jeder Liste, sofern listIds
angegeben wird. 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 erhalten bleiben. Das Setzen von status auf draft
stoppt ein Popup, ohne seinen vorhandenen Einbettungscode ungültig zu machen.
Landingpages
| Werkzeug | Beschreibung |
|---|---|
list_landing_pages | Landingpages mit Status, Metriken, Inhalt und URLs auflisten. |
get_landing_page | Landingpage-Details, Builder-Inhalt, Metriken und öffentliche URLs abrufen. |
create_landing_page | Eine Entwurfs-Landingpage aus Standardvorlageninhalt oder JSON erstellen. |
update_landing_page | Name, Slug oder vollständigen editor-kompatiblen Inhalt einer Landingpage bearbeiten. |
publish_landing_page | Eine Landingpage veröffentlichen, optional nach dem Speichern von Änderungen. |
unpublish_landing_page | Eine Landingpage in den Entwurfsstatus zurückversetzen, optional nach dem Speichern von Änderungen. |
duplicate_landing_page | Eine Landingpage in einen neuen Entwurf mit eindeutigem Slug duplizieren. |
delete_landing_page | Eine unveröffentlichte Landingpage löschen. |
connect_landing_page_domain | Eine benutzerdefinierte Landingpage-Domain verbinden und DNS-Einrichtungsdetails zurückgeben. |
update_landing_page_domain_settings | Benutzerdefinierte Domain-Einstellungen der Landingpage ersetzen oder überprüfen. |
Der Inhalt von Landingpages verwendet Sequenzys editor-kompatibles JSON-Schema mit
version, template, seo, theme und blocks.
SEO-Einstellungen umfassen faviconUrl und hideFromSearchEngines; versteckte Seiten
veröffentlichen eine noindex-Direktive. Benutzerdefinierte Landingpage-Domains
erfordern einen CNAME-Eintrag, der auf pages.sequenzydns.com verweist; rufen Sie
update_landing_page_domain_settings mit verify: true auf, nachdem sich DNS-Änderungen verbreitet haben.
Sequenzen
| Werkzeug | Beschreibung |
|---|---|
list_sequences | Sequenzen mit Dashboard-Status, Suche, Label, Limit- und Offset-Filtern auflisten. |
get_sequence | Sequenzdetails abrufen, einschließlich Knoten, Kanten, verknüpfter E-Mails, Blöcke und Format pro E-Mail. |
list_sequence_enrollments | Kontakt-Einschreibungen nach Knoten, Status, Abonnent oder E-Mail mit Paginierung auflisten. |
send_sequence_test_email | Einen gespeicherten E-Mail-Schritt an 1–10 Prüfer senden und eine dauerhafte Zustellungs-ID für jeden zurückgeben. |
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 | Mehrere vorhandene Sequenzknoten atomar patchen. |
insert_sequence_step | Beliebigen typisierten Dashboard-Schritt einfügen, einschließlich KI-Generierung, ausgehender Webhooks, Wartezeiten und verdrahteter Verzweigungen. |
edit_sequence_graph | Graphenknoten verschieben, neu verbinden, löschen oder duplizieren; meldet verschobene oder abgeschlossene Empfänger. |
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 Conversion-Ziele auflisten. |
create_sequence_goal | Ein Ereignis- oder Abonnentenattribut-Conversion-Ziel hinzufügen. |
update_sequence_goal | Ein gespeichertes Sequenz-Conversion-Ziel aktualisieren. |
delete_sequence_goal | Ein gespeichertes Sequenz-Conversion-Ziel löschen. |
get_sequence_inbound_webhook | Endpunkt und Einrichtungsstatus für eine Inbound-Webhook-Sequenz lesen. |
configure_sequence_inbound_webhook | Feldzuordnung, Beispiel-Payload und Integrationsmetadaten konfigurieren. |
rotate_sequence_inbound_webhook_secret | Den geheimen Pfad des Endpunkts einer Inbound-Sequenz rotieren. |
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, optional an einem Zielknoten. |
cancel_sequence_enrollments | Aktive oder wartende Einschreibungen nach Abonnenten- oder Eintrittsereignis-Feldwerten stoppen. |
realign_sequence_enrollments | Das Vorziehen laufender Wartezeiten auf ihre Sendezeitfenster-Öffnung in der Vorschau anzeigen oder in die Warteschlange stellen. |
get_sequence_enrollment_realignment | Einen angewendeten Neuausrichtungsauftrag abfragen und sein abgeschlossenes Ergebnis oder Fortsetzungs-Cursor lesen. |
delete_sequence | Eine Sequenz löschen. |
Die Sequenzerstellung unterstützt:
- Nur-Name-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: "segment_entered"plussegmentIdfür Eintrittsautomatisierungen mit gespeicherten Segmenten.trigger: "event_received"plus{{event.*}}-Merge-Tags in Betreffzeilen oder Textinhalten.trigger: "inbound_webhook"plus Integrationsmetadaten für dashboard-kompatible Webhook-Eintrittsknoten.trigger: "inactivity"pluseventName,inactiveDaysund optionalinactivityBaseline(sequence_created_atodersubscriber_created_at).goalfür KI-generierte E-Mail-Inhalte.emailStyle: "visual"oder"plain", um die Darstellung zielbasierter KI-generierter E-Mails zu wählen; wenn ausgelassen, wird die gespeicherte Präferenz des Unternehmens verwendet.- Explizite
stepsmit Sequenzyblocks. - Explizite
stepsmit HTML, das Sequenzy in bearbeitbare Blöcke umwandelt. - Explizite Update-Subscriber-Schritte, die Trigger-Ereignis-Eigenschaften 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 Fluss bis zum nächsten passenden Fenster an. 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 erfolgreichecreate_sequence-ErgebniseventTrackingCodeund ein strukturierteseventTracking-Objekt. Das Objekt enthält den Ereignis-Endpunkt, die Identität und den Payload-Vertrag, den für diematching_field-Anmeldung erforderlichen Eigenschaftspfad, den normalisierten TriggerpropertyFilters, ein Beispiel-Payload,examplePayloadMatchesFilters, die direkte API-Dokumentations-URL für das Ereignis sowie einsatzbereite Argumente fürget_integration_guide. Wenn der Übereinstimmungsstatus false ist, passen Sie das Beispiel mithilfe vonexamplePayloadNoteund dem Payload-Vertrag an. Fügen Sie diesen Ereignis-Feed hinzu und prüfen Sie seine erforderlichen Eigenschaften, bevor Sie die Entwurfs-Sequenz aktivieren.
Beispiel für einen 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 einen Schritt „Abonnenten aktualisieren":
{
"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 einzelner eigenständiger 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.
Sequenz-Updates unterstützen insertSteps zum Hinzufügen neuer linearer Schritte nach einem nodeId, der von get_sequence zurückgegeben wird. 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 einen Merge-Tag prompt, einen eindeutigen resultKey und einen oder mehrere outputFields; spätere Schritte lesen generierten oder Fallback-Text mit {{ai.KEY.field}}. Die kombinierten Ausgabefeld-Limits müssen in das Antwortbudget von 2000 Token des Schritts passen. Verwenden Sie includeTags, includeEventProperties oder includeAttributes, um bestimmten Kontaktkontext für die Generierung zu aktivieren, 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-Präsenz- 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, eine vorhandene targetNodeId oder beides bereitstellen; der Fallback verwendet elseSteps und/oder elseTargetNodeId. Ein Ziel kann der von get_sequence zurückgegebene Abschlussknoten sein, sodass eine einzige atomare Anfrage Antworten zum Abschluss und Else zu einem vorhandenen Folgepunkt leiten kann. Die Arrays emails und steps bearbeiten nur vorhandene E-Mail-Schritte per nodeId, emailId oder Array-Reihenfolge; verwenden Sie insertSteps, um neue Schritte zu erstellen, und fügen Sie einen 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 Zeitfenster befinden, fahren sofort fort. Übergeben Sie für aktive Sequenzen confirmStructuralChange: true mit insertSteps oder branch erst nach Bestätigung der Auswirkung auf den Live-Flow.
insert_sequence_step macht jeden Dashboard-Schritt ohne Begleitsatz direkt verfügbar: 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 kontaktbezogenen 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 den transaktionalen Modus, eine 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 typisierte branches an und verbinden 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 von get_sequence zurückgegebene verknüpfte E-Mail enthält ihre effektive emailPreset (branded oder minimal), die Stil > Format im Dashboard entspricht. Setzen Sie emailPreset auf einem emails/steps-Element oder in einem action_email-Knoten unter changes, um nur diese verknüpfte E-Mail zu ändern, ohne das Unternehmensdesign zu verä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.
Verwenden Sie update_sequence_node für eine gezielte In-Place-Bearbeitung oder update_sequence_nodes, wenn mehrere Knoten-Patches atomar committet werden müssen. Rufen Sie zuerst get_sequence auf: Jedes Element in sequence.nodes enthält die Knoten-id, nodeType, den aktuellen 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-Style-Notizen auf Minimal zu setzen, patchen Sie deren action_email-Knoten mit changes: { "emailPreset": "minimal" }. Knotentyp-Konvertierung und Kanten-/Pfadänderungen gehören in 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 Absender-Identität mit senderProfileId oder fromEmail plus optionalem fromName sowie ihre Reply-To-Identität mit replyProfileId oder replyTo plus optionalem replyToName festlegen. Ein fromName allein ändert nur den sichtbaren Absendernamen dieses Schritts. Ein Schritt-Level replyToName überschreibt ebenfalls den sichtbaren Reply-To-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ächstgelegenen Sequenz-E-Mail. Nach einer Verzweigungszusammenführung werden nur Identitätsfelder geerbt, die von allen eingehenden Pfaden gemeinsam genutzt 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 einen anderen Knoten verschieben, das normalisierte sequence.edges-Array für explizite Neuverbindung oder Mehrknoten-Neuanordnung wiederverwenden, einen Knoten löschen oder einen Knoten tief kopieren. Die A/B-Test-Duplikation erstellt unabhängige Test-, Varianten-, E-Mail- und Lokalisierungsdatensätze mit zurückgesetzten Statistiken. Das Verschieben eines Knotens vor den gemeinsamen Knoten unterhalb einer Verzweigung verbindet jeden zusammenlaufenden Verzweigungspfad neu 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. Die Löschung wird verweigert, 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 eine Massenstornierung anwenden.
Führen Sie realign_sequence_enrollments aus, nachdem Sie das Sendezeitfenster einer Live-Sequenz geändert haben, wenn vorhandene E-Mail-bezogene Warteschritte früher zum neuen Beginn verschoben werden sollen. Es ist standardmäßig 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 enthält, stellen Sie den nächsten begrenzten Apply mit dessen nextCursor in die Warteschlange. Angewandte Neuausrichtungen ändern Live-Zustellzeiten und sollten nur verwendet werden, nachdem der Benutzer die Vorschau bestätigt hat.
E-Mail-Block-Stil
Tools, die blocks akzeptieren, speichern die visuelle Gestaltung pro Block 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
}
}
Aus Kompatibilitätsgründen mit älteren Agent-Prompts werden auch Top-Level-Stil-Schlüssel wie backgroundColor, backgroundOpacity, borderColor, borderWidth und borderRadius akzeptiert und unter styles gespeichert.
Transaktionale 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 transaktionale E-Mail per ID oder Slug lesen. |
create_transactional_email | Eine transaktionale Vorlage aus einem Prompt, HTML oder Blöcken erstellen. |
update_transactional_email | Transaktionale Metadaten oder Body-Inhalte aktualisieren. |
send_email | Eine einzelne transaktionale E-Mail per Vorlage oder HTML senden. |
Per Prompt erstellte transaktionale Vorlagen werden serverseitig generiert und sind standardmäßig zur Überprüfung deaktiviert. Explizite HTML- oder Block-Vorlagen behalten den Kompatibilitätsstandard „aktiviert"; übergeben Sie enabled explizit, um den jeweiligen Standard zu überschreiben.
Für einen direkten Versand übergeben Sie to, subject und html; der MCP-Server ordnet html dem body-Feld der transaktionalen API zu. Für eine gespeicherte transaktionale E-Mail übergeben Sie stattdessen ihren API-Slug über das kompatibilitätsbenannte Feld templateId. send_email-Variablen unterstützen verschachtelte Arrays für Wiederholungsblöcke, wie z. B. { "event": { "items": [...] } }. Wenn der Empfänger einem gespeicherten Abonnenten per externer ID oder E-Mail entspricht, füllen gespeicherte Vor- und Nachnamen fehlende Namensvariablen automatisch aus. Explizite Werte, einschließlich Leerwerte, 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 im HTML verwiesen wird, und setzen Sie optional contentType, um die MIME-Erkennung zu überschreiben. Verwenden Sie trackingSettings.clickTracking: false oder trackingSettings.openTracking: false, um das Link-Rewriting oder das offene Pixel für einen einzelnen Versand zu deaktivieren. Diese Pro-Versand-Optionen dienen nur dem Opt-out; sie können kein Tracking aktivieren, das das Konto deaktiviert hat.
Analysen
| Tool | Beschreibung |
|---|---|
get_stats | Übersichtsstatistiken für 7d, 30d oder 90d abrufen; nach strukturellem E-Mail-Typ filtern. |
get_transactional_stats | Metriken für eine gespeicherte transaktionale E-Mail nach ID oder Slug für den gesamten Zeitraum oder einen Zeitraum abrufen. |
get_campaign_stats | Kampagnenleistung, Antwortmetriken 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 pro-Schritt-Sequenzleistung sowie Live-Anzahl aktiver/wartender Einschreibungen nach aktuellem Knoten abrufen. |
list_email_metrics | Kampagnen- und Sequenzschritt-Funnel, Antworten, Konversionen 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 Roh-Ereignisse 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 Sequenzereignisfilter akzeptieren transport_failure neben Zustell-, Bounce-, Beschwerde-, Engagement-, Abmelde- und Verzögerungsereignissen. Transportfehler beschreiben MTA-Infrastruktur oder Erschöpfung des Ausgangspfads; sie klassifizieren eine gültige Empfängeradresse nicht als gebounct.
Analysetools schließen standardmäßig erkannte Bots, Scanner, Link-Vorschauen und geöffnete/geklickte getrackte Assets 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-Engagement-Diagnosen benötigen; enthaltene Öffnungs-/Klick-Aktivitätszeilen legen machine, engagementQuality und classificationReasons-Felder offen, wenn die API ereignisbezogene Aktivität zurückgibt.
get_sequence_stats.enrollmentCounts ist eine Live-Momentaufnahme aktiver und wartender Einschreibungsläufe, gruppiert nach aktuellem Knoten. Es zählt Einschreibungs-Token und nicht unbedingt eindeutige Abonnenten und 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 das 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 Performer nicht stillschweigend weggelassen werden.
Übergeben Sie emailType: "transactional" an get_stats für Send-API- und transaktionale SMTP-Zustell-, Öffnungs-, Klick- und Antwortraten. Dies umfasst direkte und gespeicherte Vorlagen-Sends. Verwenden Sie das von send_email zurückgegebene emailSendId mit get_email_send, wenn Sie den Status und die Ereigniszeitleiste 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/transiente Bounce-Klassifikationen und separate menschliche und maschinelle Öffnungs-/Klick-Zählungen. Direktinhalts-Sends haben keine stabile Vorlagen-ID und bleiben über transaktionale Konto-Statistiken sowie 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 die Anzahl der Promotoren/Passiven/Kritiker. Dies sind Lebenszeit-Antwortzusammenfassungen, auch wenn Engagement-Metriken einen Zeitfilter verwenden.
Verwenden Sie list_poll_responses, um zu lesen, wer was und wann geantwortet hat. Es gibt die neueste Antwort jedes Abonnenten pro Poll-Block zurück, neueste zuerst, einschließlich E-Mail, gespeichertem Wert, Attributschlüssel und 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 sie keine exakte historische Drill-down-Analyse.
Team, Posteingang, Webhooks
| Tool | Beschreibung |
|---|---|
list_team_members | Teammitglieder und ausstehende Einladungen auflisten. |
invite_team_member | Teammitglied als Admin oder Betrachter einladen, optional mit Abrechnungszugriff. |
cancel_team_invitation | 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 ausgehenden Webhook erstellen und sein einmaliges Signaturgeheimnis zurückgeben. |
update_webhook | Webhook-Name, URL, Ereignisse oder Status aktualisieren. |
delete_webhook | Einen Webhook-Endpunkt und den Zustellverlauf dauerhaft löschen. |
test_webhook | Ein Testereignis an einen Webhook-Endpunkt senden. |
list_webhook_deliveries | Letzte 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 Änderung source (z. B. 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.
KI-Generierung
| Tool | Beschreibung |
|---|---|
generate_email | Marken-E-Mail-Blöcke aus einer Eingabeaufforderung generieren. |
generate_sequence | Veralteter Alias, der einen zielbasierten Sequenzentwurf speichert. |
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 Roh-Inhaltsblöcke und emailType: "transactional" für eine Fußzeile ohne Abmeldelink. Prompt-basierte Kampagnen übernehmen 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 zu speichern, der in list_sequences erscheint; der veraltete Alias generate_sequence macht dasselbe.
Produktfeedback
Verwenden Sie submit_feedback, wenn eine benötigte Sequenzy-Funktion fehlt, verwirrend oder defekt ist. Bei falschen oder unerwarteten Tool-Ergebnissen geben Sie userIntent, die geordnete toolCalls mit kurzen Argument- und Fehlerzusammenfassungen, expected, actual und betroffene resourceIds an. Geben Sie keine Geheimnisse, API-Schlüssel, Roh-Abonnentendaten oder vollständige E-Mail-Inhalte an.
Ressourcen
Der Server stellt außerdem schreibgeschützte MCP-Ressourcen bereit.
| Resource | 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://app-routes | Dashboard-Routenvorlagen und Einstellungsregisterkarten. |
Beispiel-Prompts
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 greifen nur auf Unternehmen zu, 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 Sends, Planung, Löschungen und Massenänderungen aktiviert.
- Bevorzugen Sie Entwurfs-Workflows für Kampagnen und Sequenzen und überprüfen Sie diese vor dem Start in Sequenzy.
Fehlerbehebung
SEQUENZY_API_KEY environment variable is required
Setzen Sie SEQUENZY_API_KEY in der MCP-Client-Konfiguration oder führen Sie 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 aktiven 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 Kontoebene API-Schlüssel-Seite. Gehostete OAuth-Verbindungen können alternativ getrennt und mit breiteren Berechtigungen neu autorisiert werden. Der Tool-Fehler enthält den genauen erforderlichen Bereich oder die genauen Bereiche.
Doppelte Ressourcen
Wenn ein Tool-Aufruf einen doppelten Segmentnamen oder eine doppelte Sende-Domain erstellen würde, gibt der Server eine stabile code, eine agentenfreundliche description, eine konkrete resolution und eine 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 zu einem anderen Unternehmen oder Konto und muss entfernt, neu zugewiesen oder durch eine andere Sende-Domain ersetzt werden.
Tools erscheinen nicht
- 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, dass 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, verifizieren Sie, 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-Tool-Schemas müssen mit strengen Clients kompatibel bleiben:
- Tool-
inputSchema-Wurzeln müssen einfachetype: "object"-Schemas sein. - Veröffentlichen Sie
anyOfnicht an beliebiger Stelle in Tool-Schemas. - Platzieren Sie
oneOf,allOf,enumodernotnicht an der Wurzel eines Tool-Schemas. - Erzwingen Sie bedingte Anforderungen in Handlern und decken Sie sie mit Tests ab.
Dieses eigenständige Repository spiegelt das MCP-Paket, das im Haupt-Sequenzy-Monorepo gepflegt wird. Siehe AGENTS.md für Synchronisierungsregeln.
Lizenz
MIT
Agenten-native Entdeckung
Sequenzy veröffentlicht maschinenlesbare Manifests für Agentennetzwerke und A2A-artige Entdeckung:
- Remote-MCP-Endpunkt:
https://api.sequenzy.com/v1/mcp - Agent-Fähigkeitsmanifest:
agent-capability.json - A2A-artige 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 Scraping, Spam und unaufgeforderte Cold-Outreach-Anwendungsfälle ausdrücklich aus.