Workspace-Events
Workspace-Events und die Typen ihrer Eigenschaften definieren, damit die gesendeten w:-Events geprüft werden.
Workspace-Event erstellen
Definiert ein Workspace-Event: einen Namen und die Eigenschaften, die jedes Event dieses Typs mitbringt, jeweils mit einem Typ. Anschließend senden Sie es als w:<name>, und Emailit lehnt Events ab, die nicht passen. Erfordert einen API-Schlüssel mit dem Scope full.
Workspace-Events sind in den Tarifen Pro, Business und Custom enthalten. Ein Workspace kann so viele definieren, wie sein Tarif Event-Typen umfasst: 100 bei Pro und 1.000 bei Business, ohne Limit bei Custom. Eigene Events (c:<name>) brauchen keine Definition. Siehe Workspace-Events.
/workspace/eventsBody-Parameter
namestringerforderlichcustomer.type: 1 bis 100 Buchstaben, Ziffern, ., - oder _, beginnend mit einem Buchstaben oder einer Ziffer. Sie können ihn auch mit Präfix senden (w:customer.type); das Präfix wird entfernt. Muss im Workspace eindeutig sein.titlestring | nulldescriptionstring | nullpropertiesobject[]Bis zu 50 Eigenschaftsdefinitionen. Standardwert: [], das heißt, Events dieses Typs haben keine Eigenschaften. Jede Definition hat:
name(erforderlich): 1 bis 64 Buchstaben, Ziffern,-oder_, beginnend mit einem Buchstaben oder einer Ziffer. Punkte sind nicht erlaubt, weil Webhook-Filter und Vorlagen mit Punkten auf verschachtelte Werte zugreifen. Namen müssen innerhalb der Definition eindeutig sein.type(erforderlich):string,number,dateoderboolean, in beliebiger Groß-/Kleinschreibung.title: eine Beschriftung, bis zu 120 Zeichen.description: bis zu 1.000 Zeichen.required:true, wenn jedes Event die Eigenschaft enthalten muss. Standardwert:false.
Rückgabe
Gibt 201 Created mit dem Workspace-Event-Objekt zurück.
| Status | Wann |
|---|---|
403 |
Der API-Schlüssel hat nicht den Scope full, oder der Workspace ist im Tarif Pay as you go: error ist plan_required und required_plan ist pro. |
409 |
Ein Workspace-Event mit diesem Namen existiert bereits. errors.name weist darauf hin. |
422 |
Ein Feld ist ungültig: errors ist nach seinem Pfad geschlüsselt, etwa name oder properties.1.type, und message wiederholt das erste Problem. Wird auch mit code: "workspace_events_limit" zurückgegeben, wenn der Workspace bereits so viele Workspace-Events hat, wie sein Tarif erlaubt, und für einen Namen, der mit c: beginnt. |
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"title": "Customer type",
"description": "Set when a customer's account type changes in the shop.",
"properties": [
{ "name": "segment", "type": "string", "title": "Segment", "description": "b2b or b2c", "required": true },
{ "name": "since", "type": "date", "title": null, "description": null, "required": false }
],
"created_at": "2026-10-19T08:00:00.000000+00:00",
"updated_at": "2026-10-19T08:00:00.000000+00:00"
}{
"error": "plan_required",
"required_plan": "pro",
"message": "Workspace and custom events are included with Pro and Business."
}{
"error": "w:customer.type is already defined",
"errors": {
"name": ["is already defined"]
}
}{
"error": "properties.1.type must be one of string, number, date, boolean",
"message": "properties.1.type must be one of string, number, date, boolean",
"errors": {
"properties.1.type": ["must be one of string, number, date, boolean"]
}
}Workspace-Event abrufen
Ruft die Definition eines Workspace-Events ab: Name, Titel und die Eigenschaften, an die sich Absender halten müssen. Erfordert einen API-Schlüssel mit dem Scope full.
/workspace/events/{id}Pfadparameter
idstringerforderlichetp_…), ihr Name (customer.type) oder ihr Event-Typ (w:customer.type). Kodieren Sie das Zeichen : für die URL, wenn Ihr Client das nicht tut.Rückgabe
Gibt das Workspace-Event-Objekt zurück.
objectstringworkspace_event.idstringetp_.namestringtypestringw: gefolgt vom Namen.titlestring | nulldescriptionstring | nullpropertiesobject[]Die Eigenschaften, die ein Event dieses Typs haben kann, jeweils mit:
name: dem Schlüssel in denpropertiesdes Events.type:string,number,dateoderboolean. Siehe Eigenschaftstypen.title,description: optionalen Beschriftungen odernull.required: ob jedes Event die Eigenschaft enthalten muss.
created_at, updated_atstringGibt 404 mit error: "Workspace event not found" zurück, wenn keine Definition passt.
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"title": "Customer type",
"description": "Set when a customer's account type changes in the shop.",
"properties": [
{ "name": "segment", "type": "string", "title": "Segment", "description": "b2b or b2c", "required": true },
{ "name": "since", "type": "date", "title": null, "description": null, "required": false }
],
"created_at": "2026-10-19T08:00:00.000000+00:00",
"updated_at": "2026-10-19T08:00:00.000000+00:00"
}{
"error": "Workspace event not found"
}Workspace-Event aktualisieren
Aktualisiert die übergebenen Felder und lässt die übrigen unverändert. Erfordert einen API-Schlüssel mit dem Scope full.
Die Definition prüft nur neue Events. Bereits gespeicherte Events behalten ihren Typ und ihre Eigenschaften. Nach einer Änderung können ältere Events daher Eigenschaften haben, die die Definition nicht mehr aufführt.
propertiesersetzt die gesamte Liste. Um eine Eigenschaft hinzuzufügen, senden Sie die aktuelle Liste und die neue Eigenschaft.- Eine Umbenennung ändert den Typ, den Sie senden. Unter dem alten Namen gespeicherte Events behalten ihn, und neue Events mit dem alten Namen werden abgelehnt, sofern Sie ihn nicht erneut definieren.
/workspace/events/{id}Pfadparameter
idstringerforderlichetp_…), ihr Name oder ihr Event-Typ (w:…).Body-Parameter
namestringtitlestring | nullnull oder ein leerer String löscht den Titel.descriptionstring | nullnull oder ein leerer String löscht die Beschreibung.propertiesobject[][] entfernt alle Eigenschaften.Rückgabe
Gibt das aktualisierte Workspace-Event-Objekt zurück.
| Status | Wann |
|---|---|
404 |
Keine Definition passt zu id. |
409 |
Ein anderes Workspace-Event hat bereits den neuen Namen. |
422 |
Ein Feld ist ungültig: errors ist nach seinem Pfad geschlüsselt, und message wiederholt das erste Problem. |
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"title": "Customer type",
"description": "Set when a customer's account type changes in the shop.",
"properties": [
{ "name": "segment", "type": "string", "title": "Segment", "description": null, "required": true },
{ "name": "since", "type": "date", "title": null, "description": null, "required": false },
{ "name": "vat_exempt", "type": "boolean", "title": null, "description": null, "required": false }
],
"created_at": "2026-10-19T08:00:00.000000+00:00",
"updated_at": "2026-10-19T10:12:45.000000+00:00"
}{
"error": "w:customer.segment is already defined",
"errors": {
"name": ["is already defined"]
}
}Workspace-Events auflisten
Gibt die Event-Definitionen des Workspaces zurück, nach Namen sortiert. Erfordert einen API-Schlüssel mit dem Scope full.
/workspace/eventsQuery-Parameter
pageintegerStandardwert: 1limitintegerStandardwert: 100searchstringmatchstringall (Standardwert) verlangt, dass alle Filter zutreffen. or trifft zu, wenn ein beliebiger Filter passt. Siehe Filtern und Sortieren.
orderstringSortierschlüssel für diese Liste. Siehe die Sortierschlüssel unten.
directionstringasc oder desc.
Filterschlüssel
Filter verwenden Query-Parameter der Form key.condition=value, zum Beispiel name.starts_with=order. oder created_at.after=2026-10-01. Die Bedingungen je Typ finden Sie unter Filtern.
| Schlüssel | Typ | Hinweise |
|---|---|---|
name |
string | Der Name ohne das Präfix w:. |
title |
string | |
created_at |
date | |
updated_at |
date |
Sortierschlüssel für order: name, title, created_at, updated_at. Standardmäßig wird aufsteigend nach name sortiert.
Rückgabe
dataobject[]total_recordsintegernext_page_urlstring | nullnull auf der letzten Seite. Er enthält nur page und limit; fügen Sie Ihre Suche und Ihre Filter wieder hinzu, wenn Sie ihm folgen.previous_page_urlstring | nullnull auf der ersten Seite.{
"data": [
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"title": "Customer type",
"description": "Set when a customer's account type changes in the shop.",
"properties": [
{ "name": "segment", "type": "string", "title": "Segment", "description": "b2b or b2c", "required": true },
{ "name": "since", "type": "date", "title": null, "description": null, "required": false }
],
"created_at": "2026-10-19T08:00:00.000000+00:00",
"updated_at": "2026-10-19T08:00:00.000000+00:00"
}
],
"total_records": 1,
"next_page_url": null,
"previous_page_url": null
}Workspace-Event löschen
Löscht die Definition eines Workspace-Events. Erfordert einen API-Schlüssel mit dem Scope full.
Bereits mit diesem Typ gespeicherte Events bleiben erhalten, im Event-Log und bei den Kontakten. Neue Events dieses Typs werden mit 422 abgelehnt, bis Sie ihn erneut definieren. Webhooks, die den Typ abonniert haben, behalten das Abonnement.
/workspace/events/{id}Pfadparameter
idstringerforderlichetp_…), ihr Name oder ihr Event-Typ (w:…).Rückgabe
objectstringworkspace_event.idstringnamestringtypestringw: gefolgt vom Namen.deletedbooleantrue.Gibt 404 zurück, wenn keine Definition passt.
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"deleted": true
}