RessourcenInbox

Inbox

Integrieren Sie den Talkturo-Posteingang mit Kontaktverwaltung, E-Mail-Threads, Anrufen, Postfächern und Nylas-Webhooks in Ihre Anwendung.

curl "https://app.talkturo.com/api/inbox/list?accountSlug=acme-sales&status=open&page=0" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "total": 1,
  "page": 0,
  "pageSize": 50,
  "contacts": [
    {
      "id": "cnt_a1b2c3d4",
      "name": "Mara Weber",
      "email": "mara.weber@beispiel.de",
      "phone": "+49 30 55501234",
      "company": "Nordstern GmbH",
      "lastAt": "2025-02-14T09:30:00.000Z",
      "last": {
        "kind": "email",
        "channel": "email",
        "direction": "inbound",
        "ref": "msg_e5f6g7h8",
        "preview": "Vielen Dank für die Informationen.",
        "seconds": null,
        "assistant": "Sales Assistant"
      },
      "channels": ["email"],
      "assistants": [
        {
          "id": "ast_12345678",
          "name": "Sales Assistant"
        }
      ],
      "unread": 1,
      "needsYou": true,
      "done": false,
      "assignee": null
    }
  ]
}
curl "https://app.talkturo.com/api/inbox/contacts?q=Mara&accountSlug=acme-sales" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "contacts": [
    {
      "id": "cnt_a1b2c3d4",
      "name": "Mara Weber",
      "email": "mara.weber@beispiel.de",
      "company": "Nordstern GmbH"
    }
  ]
}
curl "https://app.talkturo.com/api/inbox/contacts/cnt_a1b2c3d4/timeline?accountSlug=acme-sales&channel=email" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "contact": {
    "id": "cnt_a1b2c3d4",
    "name": "Mara Weber",
    "firstName": "Mara",
    "lastName": "Weber",
    "email": "mara.weber@beispiel.de",
    "phone": "+49 30 55501234",
    "phoneSecondary": null,
    "company": "Nordstern GmbH",
    "jobTitle": "Einkaufsleiterin",
    "leadStatus": "qualified",
    "source": "website",
    "createdAt": "2025-01-10T08:00:00.000Z",
    "lastAt": "2025-02-14T09:30:00.000Z",
    "lastChannel": "email",
    "lastAssistant": "Sales Assistant",
    "channelsUsed": ["email"],
    "done": false,
    "assignee": null,
    "groups": []
  },
  "items": [
    {
      "kind": "email",
      "id": "msg_e5f6g7h8",
      "at": "2025-02-14T09:30:00.000Z",
      "channel": "email",
      "direction": "inbound",
      "assistantId": "ast_12345678",
      "assistantName": "Sales Assistant",
      "threadId": "thr_i9j0k1l2",
      "threadUnread": true,
      "sentBy": null,
      "fromName": "Mara Weber",
      "fromAddress": "mara.weber@beispiel.de",
      "to": [{ "email": "sales@acme.ai", "name": "Sales Assistant" }],
      "subject": "Nächste Schritte",
      "text": "Vielen Dank für die Informationen.",
      "deliveryStatus": "delivered",
      "deliveryDetail": null,
      "attachments": []
    }
  ],
  "mailboxes": [
    {
      "assistantId": "ast_12345678",
      "assistantName": "Sales Assistant",
      "address": "sales@acme.ai"
    }
  ]
}
curl "https://app.talkturo.com/api/inbox/contact-state?accountSlug=acme-sales" \
  -X POST \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r" \
  -H "Content-Type: application/json" \
  -d '{
    "contactIds": ["cnt_a1b2c3d4"],
    "action": "assign",
    "assigneeId": "usr_m3n4o5p6"
  }'
{
  "updated": 1
}
curl "https://app.talkturo.com/api/inbox/access?accountSlug=acme-sales" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "canManage": true,
  "me": "usr_m3n4o5p6",
  "assistants": [
    {
      "id": "ast_12345678",
      "name": "Sales Assistant"
    }
  ],
  "members": [
    {
      "id": "usr_m3n4o5p6",
      "name": "Lena Fischer",
      "email": "lena.fischer@acme.ai",
      "pictureUrl": null,
      "role": "member",
      "manager": false,
      "assistantIds": null
    }
  ]
}
curl "https://app.talkturo.com/api/inbox/access?accountSlug=acme-sales" \
  -X PUT \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "usr_m3n4o5p6",
    "assistantIds": ["ast_12345678"]
  }'
{
  "ok": true,
  "assistantIds": ["ast_12345678"]
}
curl "https://app.talkturo.com/api/inbox/members?accountSlug=acme-sales" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "me": "usr_m3n4o5p6",
  "members": [
    {
      "id": "usr_m3n4o5p6",
      "name": "Lena Fischer",
      "email": "lena.fischer@acme.ai",
      "pictureUrl": null,
      "role": "member"
    }
  ]
}
curl "https://app.talkturo.com/api/inbox/availability?localPart=sales&accountSlug=acme-sales" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "ok": true,
  "address": "sales@acme.ai"
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/calls?accountSlug=acme-sales&page=1&dir=inbound" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "calls": [
    {
      "id": "call_q7r8s9t0",
      "direction": "inbound",
      "isWeb": false,
      "isTest": false,
      "status": "completed",
      "startedAt": "2025-02-14T09:00:00.000Z",
      "endedAt": "2025-02-14T09:05:12.000Z",
      "createdAt": "2025-02-14T09:00:00.000Z",
      "durationSeconds": 312,
      "counterpartNumber": "+49 30 55501234",
      "ourNumber": "+49 30 55501000",
      "assistantName": "Sales Assistant",
      "contact": {
        "id": "cnt_a1b2c3d4",
        "name": "Mara Weber",
        "company": "Nordstern GmbH"
      },
      "summary": "Interesse an einer Produktdemo"
    }
  ],
  "hasMore": false
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/calls/call_q7r8s9t0?accountSlug=acme-sales" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "call": {
    "id": "call_q7r8s9t0",
    "direction": "inbound",
    "isWeb": false,
    "isTest": false,
    "status": "completed",
    "startedAt": "2025-02-14T09:00:00.000Z",
    "endedAt": "2025-02-14T09:05:12.000Z",
    "createdAt": "2025-02-14T09:00:00.000Z",
    "durationSeconds": 312,
    "counterpartNumber": "+49 30 55501234",
    "ourNumber": "+49 30 55501000",
    "assistantName": "Sales Assistant",
    "contact": {
      "id": "cnt_a1b2c3d4",
      "name": "Mara Weber",
      "company": "Nordstern GmbH"
    },
    "summary": "Interesse an einer Produktdemo",
    "hasRecording": true,
    "messages": [
      {
        "role": "assistant",
        "message": "Wie kann ich Ihnen helfen?",
        "time": 2
      }
    ]
  }
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/calls/summary?accountSlug=acme-sales" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "totals": {
    "calls": 42,
    "inbound": 25,
    "outbound": 17,
    "avgSeconds": 184
  },
  "numbers": [
    {
      "number": "+49 30 55501000",
      "kind": "phone",
      "calls": 42,
      "inbound": 25,
      "outbound": 17,
      "avgSeconds": 184,
      "lastCallAt": "2025-02-14T09:00:00.000Z",
      "assigned": true
    }
  ]
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/mailbox?accountSlug=acme-sales" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "emailEnabled": true,
  "pricing": {
    "perMailboxMonth": 15,
    "perThousandEmails": 2
  },
  "domain": "acme.ai",
  "suggestion": "sales",
  "mailbox": {
    "id": "mb_u1v2w3x4",
    "address": "sales@acme.ai",
    "senderName": "Sales Assistant",
    "createdAt": "2025-02-01T10:00:00.000Z",
    "unread": 3,
    "signaturePreview": "Viele Grüße",
    "defaultSenderName": "Talkturo",
    "defaultSignature": "Viele Grüße",
    "ownSenderName": null,
    "ownSignature": null
  }
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/mailbox?accountSlug=acme-sales" \
  -X POST \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r" \
  -H "Content-Type: application/json" \
  -d '{ "localPart": "sales" }'
{
  "mailbox": {
    "id": "mb_u1v2w3x4",
    "address": "sales@acme.ai"
  }
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/mailbox?accountSlug=acme-sales" \
  -X PATCH \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r" \
  -H "Content-Type: application/json" \
  -d '{
    "senderName": "Lena vom Vertrieb",
    "signature": "Viele Grüße,
Lena"
  }'
{
  "ok": true
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/mailbox?accountSlug=acme-sales" \
  -X DELETE \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "ok": true
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/send?accountSlug=acme-sales" \
  -X POST \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r" \
  -F 'payload={"mode":"new","to":[{"email":"mara.weber@beispiel.de","name":"Mara Weber"}],"cc":[],"bcc":[],"subject":"Ihre Produktdemo","text":"Gerne vereinbaren wir einen Termin.","locale":"de"}'
{
  "ok": true,
  "id": "msg_e5f6g7h8"
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/threads?accountSlug=acme-sales&folder=inbox" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "threads": [
    {
      "id": "thr_i9j0k1l2",
      "subject": "Nächste Schritte",
      "with": "Mara Weber",
      "withEmail": "mara.weber@beispiel.de",
      "unread": true,
      "messageCount": 2,
      "hasAttachments": false,
      "deliveryProblem": false,
      "lastMessageAt": "2025-02-14T09:30:00.000Z",
      "lastDirection": "inbound",
      "preview": "Vielen Dank für die Informationen."
    }
  ]
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/threads/thr_i9j0k1l2/block?accountSlug=acme-sales" \
  -X POST \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r" \
  -H "Content-Type: application/json" \
  -d '{ "domain": true }'
{
  "ok": true,
  "pattern": "@beispiel.de"
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/threads/thr_i9j0k1l2/block?accountSlug=acme-sales&domain=1" \
  -X DELETE \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "ok": true
}
curl "https://app.talkturo.com/api/inbox/assistants/ast_12345678/threads/thr_i9j0k1l2/folder?accountSlug=acme-sales" \
  -X POST \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r" \
  -H "Content-Type: application/json" \
  -d '{ "folder": "inbox" }'
{
  "ok": true,
  "folder": "inbox",
  "contactId": "cnt_a1b2c3d4"
}
curl "https://app.talkturo.com/api/inbox/threads/thr_i9j0k1l2?accountSlug=acme-sales" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "thread": {
    "id": "thr_i9j0k1l2",
    "subject": "Nächste Schritte",
    "mailboxAddress": "sales@acme.ai",
    "deliveryProblem": false
  },
  "messages": [
    {
      "id": "msg_e5f6g7h8",
      "direction": "inbound",
      "sentBy": null,
      "fromName": "Mara Weber",
      "fromAddress": "mara.weber@beispiel.de",
      "to": [{ "email": "sales@acme.ai" }],
      "cc": [],
      "replyTo": [],
      "subject": "Nächste Schritte",
      "text": "Vielen Dank für die Informationen.",
      "quotedText": "",
      "html": null,
      "inline": [],
      "deliveryStatus": "delivered",
      "deliveryDetail": null,
      "sentAt": "2025-02-14T09:30:00.000Z",
      "attachments": []
    }
  ]
}
curl "https://app.talkturo.com/api/inbox/threads/thr_i9j0k1l2?accountSlug=acme-sales" \
  -X POST \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r" \
  -H "Content-Type: application/json" \
  -d '{ "action": "read" }'
{
  "ok": true
}
curl "https://app.talkturo.com/api/inbox/attachments/att_y5z6a7b8?accountSlug=acme-sales" \
  -H "Authorization: Bearer tk_test_example_9xmk7q2r"
{
  "url": "https://storage.example.net/signed/att_y5z6a7b8?expires=60"
}
curl "https://app.talkturo.com/api/inbox/nylas/webhook?challenge=nylas_challenge_7f3a"
nylas_challenge_7f3a
curl "https://app.talkturo.com/api/inbox/nylas/webhook" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "X-Nylas-Signature: 4d2f8a6e1c9b7a5f3e2d1c0b9a8f7e6d5c4b3a291817161514131211100f0e0d" \
  -d '{
    "object": "event",
    "id": "evt_c1d2e3f4",
    "type": "message.created"
  }'
{
  "ok": true
}

Talkturo Inbox API

Verwalten Sie Kontakte, Anrufe und E-Mail-Threads über einen gemeinsamen Posteingang. Sie können Kontakte suchen, Status ändern, Postfächer verwalten, Nachrichten senden und Nylas-Ereignisse empfangen.

Alle Inbox-Endpunkte verwenden die Basis-URL https://app.talkturo.com. Die Authentifizierung erfolgt ausschließlich über eine authentifizierte Supabase-Browsersitzung oder ein Sitzungs-Bearer-Token. API-Schlüssel werden mit HTTP 403 abgelehnt.

Für Bearer-Sitzungstoken ist accountSlug erforderlich. Cookie-basierte Browser-Anfragen können alternativ teamId verwenden.

Endpunktübersicht

MethodePfadZweckAuthentifizierung
GET/api/inbox/listKontakte im Posteingang auflistenSitzung
GET/api/inbox/contactsKontakte suchenSitzung
GET/api/inbox/contacts/{contactId}/timelineKontakt-Zeitleiste abrufenSitzung
POST/api/inbox/contact-stateKontaktstatus ändernSitzung
GET, PUT/api/inbox/accessZugriff auf Assistenten verwaltenSitzung
GET/api/inbox/membersWorkspace-Mitglieder auflistenSitzung
GET/api/inbox/availabilityE-Mail-Adresse prüfenSitzung
GET/api/inbox/assistants/{assistantId}/callsAnrufe eines Assistenten auflistenSitzung
GET/api/inbox/assistants/{assistantId}/calls/{callId}Anrufdetails abrufenSitzung
GET/api/inbox/assistants/{assistantId}/calls/summaryAnrufstatistik abrufenSitzung
GET, POST, PATCH, DELETE/api/inbox/assistants/{assistantId}/mailboxPostfach verwaltenSitzung
POST/api/inbox/assistants/{assistantId}/sendE-Mail sendenSitzung
GET/api/inbox/assistants/{assistantId}/threadsE-Mail-Threads auflistenSitzung
POST, DELETE/api/inbox/assistants/{assistantId}/threads/{threadId}/blockAbsender blockieren oder entsperrenSitzung
POST/api/inbox/assistants/{assistantId}/threads/{threadId}/folderThread verschiebenSitzung
GET, POST/api/inbox/threads/{threadId}Thread-Nachrichten abrufen oder als gelesen markierenSitzung
GET/api/inbox/attachments/{attachmentId}Anhang herunterladenSitzung
GET, POST/api/inbox/nylas/webhookNylas-Challenge und Ereignisse verarbeitenHMAC-SHA256

Gemeinsame Authentifizierungsfehler

StatusAntwortBedeutung
401UnauthorizedKeine gültige Authentifizierung vorhanden
401Invalid session tokenDas Sitzungstoken ist ungültig
400Account slug requiredaccountSlug fehlt
400teamId or accountSlug query parameter or body field requiredWorkspace-Auswahl fehlt
404Account not foundWorkspace wurde nicht gefunden
403Access deniedKein Zugriff auf den Workspace
403Not available with an API keyDer Endpunkt akzeptiert keine API-Schlüssel

Posteingangsliste

Rufen Sie Kontakte mit Filtern für Kanal, Status, Zuweisung, ungelesene Nachrichten und Seitenzahl ab.

Endpunkt

GET /api/inbox/list

Query-Parameter

query
accountSlugstring
Required
Slug des ausgewählten Workspace.
query
assistantsstring
Kommagetrennte Assistenten-UUIDs.
query
channelstring
Filtert nach Telefon-, Web- oder E-Mail-Aktivität.
Allowed values:phonewebemail
query
qstring
Suchtext, auf 100 Zeichen gekürzt.
query
unreadstring
Verwenden Sie 1, um nur ungelesene Kontakte abzurufen.
query
statusstring
Statusfilter. Ohne Angabe wird open verwendet.
Allowed values:opendoneall
query
assignedstring
me, unassigned oder die UUID eines Workspace-Mitglieds.
query
needsstring
Verwenden Sie 1, um nur Kontakte abzurufen, die Ihre Bearbeitung benötigen.
query
pageinteger
Nullbasierte Seitennummer zwischen 0 und 1000.

Antwortfelder

totalinteger
Required
Gesamtzahl der passenden Kontakte.
pageinteger
Required
Die zurückgegebene Seitennummer.
pageSizeinteger
Required
Maximal 50 Kontakte pro Seite.
contactsarray
Required
Kontakte mit letzter Aktivität, Kanälen, Zuständigkeit und Lesestatus.

Bei einem Fehler beim Laden des Posteingangs antwortet der Endpunkt mit HTTP 500 und { "error": "Could not load the Inbox" }.

Kontaktsuche

Suchen Sie nach Kontakten mit Namen, E-Mail-Adresse oder Unternehmen. Ergebnisse ohne gültige E-Mail-Adresse werden nicht zurückgegeben.

Endpunkt

GET /api/inbox/contacts

Query-Parameter

query
qstring
Required
Suchtext. Sonderzeichen werden entfernt, der Text wird getrimmt und auf 60 Zeichen gekürzt.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.

Antwortfelder

contactsarray
Required
Bis zu acht Kontakte mit nicht leerer E-Mail-Adresse.

Suchtexte mit weniger als zwei Zeichen liefern eine leere Ergebnisliste, ohne die Datenbank abzufragen.

Kontakt-Zeitleiste

Rufen Sie die chronologisch sortierte Aktivität eines Kontakts ab. Die Zeitleiste enthält Anrufe und E-Mail-Nachrichten.

Endpunkt

GET /api/inbox/contacts/{contactId}/timeline

Parameter

path
contactIdstring
Required
UUID des Kontakts.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.
query
assistantsstring
Kommagetrennte Assistenten-UUIDs. Ungültige UUIDs werden ignoriert.
query
channelstring
Filtert nach Telefon-, Web- oder E-Mail-Aktivität.
Allowed values:phonewebemail

Antwortfelder

contactobject
Required
Kontaktdaten einschließlich Zuständigkeit und verwendeter Kanäle.
itemsarray
Required
Anrufe und E-Mail-Nachrichten, älteste zuerst sortiert.
mailboxesarray
Required
Postfächer der in der Zeitleiste verwendeten Assistenten.

Ohne channel werden Anrufe und E-Mails zurückgegeben. Mit phone, web oder email können Sie die Aktivität einschränken. Mitglieder mit eingeschränktem Assistentenzugriff werden automatisch gefiltert.

Kontakt-Status

Ändern Sie den Status mehrerer Kontakte oder weisen Sie Kontakte einem Workspace-Mitglied zu.

Endpunkt

POST /api/inbox/contact-state

Anfragefelder

body
contactIdsstring[]
Required
Eine bis 200 Kontakt-UUIDs.
body
actionstring
Required
Auszuführende Statusaktion.
Allowed values:assignunassigndonereopen
body
assigneeIdstring
UUID des Workspace-Mitglieds. Für assign erforderlich.

Antwortfelder

updatedinteger
Required
Anzahl der Kontakte, deren Status geändert wurde.

Posteingangs-Zugriff

Lesen und ändern Sie die Assistenten, auf die Workspace-Mitglieder im Posteingang zugreifen dürfen.

Zugriff abrufen

GET /api/inbox/access

Query-Parameter

query
accountSlugstring
Required
Slug des ausgewählten Workspace.

Antwortfelder

canManageboolean
Required
Gibt an, ob das aktuelle Mitglied Zugriffsrechte verwalten darf.
mestring
Required
UUID des aktuellen Workspace-Mitglieds.
assistantsarray
Required
Assistenten des Workspace.
membersarray
Required
Workspace-Mitglieder und ihre Assistentenbeschränkungen.

Zugriff aktualisieren

PUT /api/inbox/access

Anfragefelder

body
userIdstring
Required
UUID des Workspace-Mitglieds.
body
assistantIdsstring[] | null
Required
Assistenten-UUIDs, auf die das Mitglied zugreifen darf. Maximal 500 Einträge.

assistantIds: null entfernt die Einschränkung. Ein leeres Array speichert dagegen eine ausdrückliche Einschränkung ohne zugängliche Assistenten. UUIDs aus anderen Workspaces werden stillschweigend entfernt.

Workspace-Mitglieder

Listen Sie die Mitglieder des ausgewählten Workspace auf.

Endpunkt

GET /api/inbox/members

Query-Parameter

query
accountSlugstring
Required
Slug des ausgewählten Workspace.

Antwortfelder

mestring
Required
UUID des aktuellen Mitglieds.
membersarray
Required
Mitglieder mit Name, E-Mail-Adresse, Profilbild und Rolle.

Adressverfügbarkeit

Prüfen Sie, ob ein lokaler Teil einer E-Mail-Adresse verfügbar ist.

Endpunkt

GET /api/inbox/availability

Query-Parameter

query
localPartstring
Lokaler Teil der zu prüfenden Adresse. Ohne Angabe wird eine leere Zeichenfolge verwendet.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.

Antwortfelder

okboolean
Required
Gibt an, ob die Adresse verfügbar ist.
addressstring | null
Required
Geprüfte oder vorgeschlagene Adresse.
reasonstring
Grund für eine nicht verfügbare Adresse.

Assistenten-Anrufe

Listen Sie die Anrufe eines Assistenten mit optionalen Filtern und Seitennummern auf.

Endpunkt

GET /api/inbox/assistants/{assistantId}/calls

Parameter

path
assistantIdstring
Required
UUID des Assistenten.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.
query
pageinteger
Seitennummer ab 1. Standardwert ist 1.
query
dirstring
Filtert nach Anrufrichtung.
Allowed values:inboundoutbound
query
viastring
web für Web-Anrufe oder eine Telefonnummer des Assistenten.

Antwortfelder

callsarray
Required
Bis zu 30 Anrufe mit Kontakt- und Zusammenfassungsdaten.
hasMoreboolean
Required
Gibt an, ob weitere Anrufe vorhanden sind.

Anruf-Details

Rufen Sie Metadaten, Zusammenfassung und Transkript eines einzelnen Anrufs ab.

Endpunkt

GET /api/inbox/assistants/{assistantId}/calls/{callId}

Parameter

path
assistantIdstring
Required
UUID des Assistenten.
path
callIdstring
Required
UUID des Anrufs.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.

Antwortfelder

callobject
Required
Anrufdetails mit Kontakt, Aufzeichnung und nicht leeren Transkriptzeilen.

Anruf-Zusammenfassung

Rufen Sie aggregierte Anrufzahlen und Statistiken pro Telefonnummer ab.

Endpunkt

GET /api/inbox/assistants/{assistantId}/calls/summary

Parameter

path
assistantIdstring
Required
UUID des Assistenten.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.

Antwortfelder

totalsobject
Required
Gesamtzahl sowie eingehende, ausgehende und durchschnittliche Anrufdauer.
numbersarray
Required
Statistiken für Telefonnummern und Web-Anrufe.

Für Web-Anrufe ist number leer. Zugewiesene Telefonnummern ohne Anrufe werden mit Zählwerten von 0 zurückgegeben.

Postfachverwaltung

Lesen, erstellen, aktualisieren und löschen Sie das E-Mail-Postfach eines Assistenten.

Postfach abrufen

GET /api/inbox/assistants/{assistantId}/mailbox

Postfach erstellen

POST /api/inbox/assistants/{assistantId}/mailbox

Postfach aktualisieren

PATCH /api/inbox/assistants/{assistantId}/mailbox

Postfach löschen

DELETE /api/inbox/assistants/{assistantId}/mailbox

Parameter

path
assistantIdstring
Required
UUID des Assistenten.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.
body
localPartstring
Lokaler Teil der neuen Adresse mit 1 bis 64 Zeichen.
body
senderNamestring | null
Individueller Absendername mit maximal 120 Zeichen.
body
signaturestring | null
Individuelle Signatur mit maximal 2.000 Zeichen.

Das Löschen eines Postfachs ist nur für Workspace-Eigentümer erlaubt. Eine leere Zeichenfolge bei senderName oder signature setzt die jeweilige Workspace-Voreinstellung zurück.

E-Mail senden

Senden Sie neue E-Mails, Antworten oder Weiterleitungen mit optionalen Anhängen.

Endpunkt

POST /api/inbox/assistants/{assistantId}/send

Parameter

path
assistantIdstring
Required
UUID des Assistenten.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.
body
payloadJSON string
Required
JSON-Objekt mit Versandmodus, Empfängern, Betreff, Nachrichtentext und Sprache.
body
filesFile[]
Hochzuladende Anhänge. Die kombinierte Größe darf das konfigurierte Nachrichtenlimit nicht überschreiten.

Felder von payload

body
modestring
Required
Versandmodus.
Allowed values:newreplyreplyAllforward
body
messageIdstring
UUID der Nachricht für Antworten oder Weiterleitungen.
body
toobject[]
Required
Empfänger mit E-Mail-Adresse und optionalem Namen.
body
ccobject[]
CC-Empfänger. Standardwert ist ein leeres Array.
body
bccobject[]
BCC-Empfänger. Standardwert ist ein leeres Array.
body
subjectstring
Required
Betreff mit maximal 998 Zeichen.
body
textstring
Required
Nachrichtentext mit maximal 100.000 Zeichen.
body
localestring
Sprache mit maximal 10 Zeichen. Standardwert ist en.

Der Endpunkt erwartet multipart/form-data. Ohne Postfach antwortet er mit 409 und no_mailbox. Zu große oder blockierte Anhänge führen zu 413 beziehungsweise 400.

Assistenten-Threads

Listen Sie die E-Mail-Threads eines Assistenten nach Ordner auf.

Endpunkt

GET /api/inbox/assistants/{assistantId}/threads

Parameter

path
assistantIdstring
Required
UUID des Assistenten.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.
query
folderstring
E-Mail-Ordner. Standardwert ist inbox.
Allowed values:inboxsentspam

Antwortfelder

threadsarray
Required
Bis zu 50 Threads mit Vorschau, Lesestatus und Zustellstatus.

Wenn der Assistent kein E-Mail-Postfach besitzt, gibt der Endpunkt { "threads": [] } zurück.

Absender blockieren oder entsperren

Blockieren Sie den Absender eines Threads oder entfernen Sie eine bestehende Blockierung.

Absender blockieren

POST /api/inbox/assistants/{assistantId}/threads/{threadId}/block

Absender entsperren

DELETE /api/inbox/assistants/{assistantId}/threads/{threadId}/block

Parameter

path
assistantIdstring
Required
UUID des Assistenten.
path
threadIdstring
Required
UUID-ähnliche Kennung des Threads.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.
query
domainstring
Verwenden Sie 1, um eine Domainblockierung zu entfernen.
body
domainboolean
Bei true wird die gesamte Absenderdomain blockiert. Andernfalls wird nur die konkrete Adresse blockiert.

Antwortfelder

okboolean
Required
Gibt an, ob die Blockierung erfolgreich erstellt oder entfernt wurde.
patternstring
Blockiertes Muster: E-Mail-Adresse oder Domain mit vorangestelltem @.

Beim Blockieren wird der Thread automatisch in den Spam-Ordner verschoben.

Thread verschieben

Verschieben Sie einen Thread zwischen Posteingang und Spam.

Endpunkt

POST /api/inbox/assistants/{assistantId}/threads/{threadId}/folder

Parameter

path
assistantIdstring
Required
UUID des Assistenten.
query
accountSlugstring
Required
Slug des ausgewählten Workspace.
body
folderstring
Required
Zielordner des Threads.
Allowed values:spaminbox

Antwortfelder

okboolean
Required
Gibt an, ob der Thread verschoben wurde.
folderstring
Required
Der neue Ordner.
contactIdstring | null
Required
Zugehörige Kontakt-UUID, sofern ein Kontakt vorhanden ist.

Beim Verschieben aus Spam in den Posteingang kann der Endpunkt anhand des ersten eingehenden Absenders einen CRM-Kontakt auflösen oder erstellen.

Thread-Nachrichten

Rufen Sie einen Thread mit seinen Nachrichten ab oder markieren Sie eingehende Nachrichten als gelesen.

Nachrichten abrufen

GET /api/inbox/threads/{threadId}

Thread als gelesen markieren

POST /api/inbox/threads/{threadId}

Parameter

query
accountSlugstring
Required
Slug des ausgewählten Workspace.
body
actionstring
Required
Mit read markieren Sie den Thread und ungelesene eingehende Nachrichten als gelesen.
Allowed values:read

Antwortfelder

threadobject
Thread-Metadaten mit Betreff, Postfachadresse und Zustellstatus.
messagesarray
Nachrichten ohne Entwürfe, älteste zuerst sortiert.
okboolean
Gibt an, ob der Thread als gelesen markiert wurde.

Inline-Anhänge werden anhand von cid:-Verweisen in HTML erkannt. Ein Anhang ist nur herunterladbar, wenn er nicht blockiert wurde und einen gespeicherten Pfad besitzt.

Anhang-Download

Erzeugen Sie eine kurzlebige signierte URL für einen gespeicherten Anhang.

Endpunkt

GET /api/inbox/attachments/{attachmentId}

Parameter

query
accountSlugstring
Required
Slug des ausgewählten Workspace.

Antwortfelder

urlstring
Required
Signierte Speicher-URL, die 60 Sekunden gültig ist und den gespeicherten Dateinamen verwendet.

Der Endpunkt antwortet mit 404, wenn der Anhang ungültig, blockiert, workspacefremd oder nicht gespeichert ist.

Nylas-Webhook

Verarbeiten Sie die Nylas-Challenge und empfangen Sie signierte E-Mail-Ereignisse. Dieser Webhook verwendet keine Sitzungsauthentifizierung und akzeptiert keine API-Schlüssel.

Challenge bestätigen

GET /api/inbox/nylas/webhook

Query-Parameter

query
challengestring
Required
Von Nylas übermittelte Challenge. Der Wert wird unverändert als Text zurückgegeben.

Ereignisse empfangen

POST /api/inbox/nylas/webhook

Header und Anfrage

header
X-Nylas-Signaturestring
Required
Hexadezimale HMAC-SHA256-Signatur des unveränderten Anfrage-Bodys.
body
eventJSON
Required
Roher JSON-Body eines Nylas-Ereignisses.

Antwortfelder

okboolean
Required
Gibt an, dass das Ereignis akzeptiert und verarbeitet wurde.

Berechnen Sie die Signatur mit dem Secret NYLAS_INBOX_WEBHOOK_SECRET. Fehlende, ungültige oder nicht übereinstimmende Signaturen führen zu 401. Ungültiges JSON führt zu 400; Verarbeitungsfehler führen zu 500, damit Nylas das Ereignis erneut sendet.

Verwandte Ressourcen