Zum Hauptinhalt springen
connic
Starte kostenlos
Verbindungen

Telnyx Messaging

Agenten mit eingehenden SMS/MMS-, WhatsApp- und RCS-Nachrichten starten und Antworten, Medien und genehmigte WhatsApp-Vorlagen über Telnyx senden.

Zuletzt aktualisiert
ModiInbound, Outbound
YAML-Typtelnyx_messaging
ZugangsdatenEin Kontozugang (Connection) vom Typ Telnyx, den auch Telnyx Voice nutzt
BridgeNicht unterstützt
Custom DomainNicht unterstützt
Verknüpfte AgentenEiner oder mehrere. Eine eingehende Nachricht startet jeden verknüpften Agenten; bei Outbound legt jede Verknüpfung fest, wie ihr Agent sendet.
Während der PauseInbound: Telnyx erhält 200, und es startet kein Run. Die Nachricht wird weder gespeichert noch später zugestellt. Outbound: Es wird nichts gesendet.

Einrichtung

  1. Bereite den Absender in Telnyx vor: eine Rufnummer mit SMS oder MMS oder eine aktivierte, registrierte WhatsApp-Nummer beziehungsweise einen RCS-Agenten, jeweils mit zugewiesenem Messaging-Profil. Gib der Nummer für Inbound über SMS und WhatsApp ein eigenes Messaging-Profil und verschiebe andere Nummern und Kurzwahlnummern in ein anderes Profil.

  2. Öffne den Agenten. Klicke im Connector Flow für Inbound auf Add inbound connector oder für Outbound auf Add outbound connector. Klicke dann auf Create New Connector und wähle Telnyx Messaging.

  3. Wähle den Mode. Wähle unter Connection einen Telnyx-Kontozugang oder lege einen mit dem API-Schlüssel und dem öffentlichen Schlüssel des Kontos an. Wähle den Channel und dann den Telnyx sender. Absender, die die Verbindung nicht nutzen kann, etwa eine Nummer ohne Messaging-Profil oder eine mit geteiltem Profil, erscheinen deaktiviert in der Liste und nennen den Grund. Für eine WhatsApp-Nummer, die nicht bei Telnyx gehostet ist, trägst du ihre WhatsApp messaging profile ID ein. Bei Outbound kannst du einen Default recipient und ein Default WhatsApp template setzen. Klicke auf Create.

  4. Bei Inbound trägt connic den Webhook am Messaging-Profil des Absenders oder am RCS-Agenten ein; siehe Einrichtung bei Telnyx. Bei einer externen WhatsApp-Nummer trägst du ihn selbst ein. Bei Outbound legst du fest, wie der Agent sendet: Automatic outbound connector, Agent-tool outbound connector oder Middleware outbound connector. Für Antworten wählst du Only selected inputs und die Inbound-Verbindung.

  5. Sende eine Nachricht an den Absender und öffne den Run. Bei Outbound öffnest du den Run der Verbindung und suchst die zurückgegebene Nachrichten-ID in Telnyx.

Im Code

Deklariere die Verbindungen in connectors/*.yaml. Setze Rufnummern und IDs in Anführungszeichen. Ohne sie liest YAML eine Nummer wie +14155550123 als Ganzzahl und das Deployment scheitert. Eine Inbound-Verbindung, die SMS empfängt:

connectors/support-sms.yaml
type: telnyx_messaging
mode: inbound
connection: support-telnyx
config:
  channel: sms
  sender: "+14155550123"
agents:
  - messaging-assistant

Eine Outbound-Verbindung, die von derselben Nummer antwortet:

connectors/support-sms-replies.yaml
type: telnyx_messaging
mode: outbound
connection: support-telnyx
config:
  channel: sms
  sender: "+14155550123"
agents:
  - name: messaging-assistant
    outbound: { usage: automatic, source: [support-sms] }  # antwortet auf Runs der Inbound-Datei

Konfiguration

Die Felder einer Telnyx-Messaging-Verbindung, in connectors/*.yaml genauso wie in der REST API und connic MCP. Die Beschreibungen nennen die passende Einstellung im Dashboard. Felder, die alle Verbindungen gemeinsam haben, etwa agents und environments, beschreibt Verbindungen im Code.

FeldTypStatusBeschreibung
typestringErforderlichtelnyx_messaging.
modestringErforderlichinbound oder outbound. Dashboard: Mode.
connectionstringErforderlichName oder ID eines Telnyx-Kontozugangs, der API-Schlüssel und öffentlichen Schlüssel enthält. Dashboard: Connection.
configobjectErforderlichEinstellungen für Telnyx Messaging.
channelstringOptionalInbound und Outbound. sms für SMS und MMS, whatsapp oder rcs. Dashboard: Channel.Standard: sms
senderstringErforderlichInbound und Outbound. Der Telnyx-Absender: für SMS und WhatsApp eine Nummer im E.164-Format in Anführungszeichen wie "+14155550123", für RCS die ID des Agenten. In beiden Modi muss er im Konto des Kontozugangs existieren und ein Messaging-Profil haben. Dashboard: Telnyx sender.
whatsapp_profile_idstringOptionalInbound und Outbound, nur WhatsApp. Für eine WhatsApp-Nummer, die nicht bei Telnyx gehostet ist: die ID ihres Telnyx-Messaging-Profils, eine UUID. Die Verbindung wechselt damit zur manuellen Einrichtung; siehe Externe WhatsApp-Nummern. Bei einer Nummer, die Telnyx hostet, wird das Feld ignoriert. Dashboard: WhatsApp messaging profile ID.
tostringOptionalOutbound. Standardempfänger, eine Nummer im E.164-Format in Anführungszeichen. Ohne ihn antwortet die Verbindung auf eingehende Nachrichten; siehe Empfänger. Dashboard: Default recipient.
whatsapp_templateobjectOptionalOutbound, nur mit dem Kanal WhatsApp; mit einem anderen Kanal lässt sich die Verbindung nicht anlegen. Genehmigte Standardvorlage: template_id oder name und language.code, dazu optional components. Solange sie gesetzt ist, ersetzt sie den Text des Agenten; siehe WhatsApp-Vorlagen. Dashboard: Default WhatsApp template, als JSON.

Kontozugang

Ein Telnyx-Kontozugang enthält die Zugangsdaten des Kontos und kann beliebig viele Verbindungen für Telnyx Messaging und Telnyx Voice bedienen. Kanal und Absender gehören zu jeder einzelnen Verbindung. Mit dem API-Schlüssel listet connic Absender auf, setzt Webhooks und sendet Nachrichten; mit dem öffentlichen Schlüssel prüft connic die Signatur jedes Ereignisses von Telnyx. Änderst du den Kontozugang, erhalten alle seine Verbindungen die neuen Zugangsdaten.

EinstellungBeschreibung
API keyEin Telnyx-API-Schlüssel für das Konto. Du erstellst ihn im Telnyx Mission Control Portal.
Public keyDer Base64-kodierte öffentliche Ed25519-Schlüssel desselben Kontos aus den API-Keys-Einstellungen im Telnyx Mission Control Portal. Telnyx bietet keine API, um ihn abzufragen. Beim Speichern des Kontozugangs prüft connic deshalb nur, ob es ein gültiger Schlüssel ist. Ein Schlüssel aus einem anderen Konto fällt erst auf, wenn Nachrichten eingehen: connic lehnt deren Ereignisse mit 403 ab und schreibt den Signaturfehler in die Logs der Verbindung.

Erzeugte Werte

connic setzt diese Werte beim Anlegen der Verbindung oder wenn sich der Absender ändert. Die Webhook-URL kopierst du aus dem Detailbereich. Sie gehören nicht in YAML-Dateien; connic lint lehnt sie ab.

WertModiBeschreibung
Incoming-message webhookInboundDie URL, an die Telnyx Nachrichtenereignisse sendet. Bei SMS und WhatsApp gehört die URL zum Kontozugang und zum Messaging-Profil; SMS- und WhatsApp-Verbindungen für dieselbe Nummer teilen sie also. Eine RCS-Verbindung hat ihre eigene.
sender_idInbound, OutboundDie Telnyx-ID des Absenders: die ID der Rufnummer, die WhatsApp Phone Number ID oder die ID des RCS-Agenten.
messaging_profile_idInbound, OutboundDas Messaging-Profil des Absenders, bei einer externen WhatsApp-Nummer die whatsapp_profile_id.
setup_modeInbound, Outboundautomatic, bei einer externen WhatsApp-Nummer manual.

Agent-Input

Modi: Inbound

Telnyx sendet signierte JSON-Ereignisse an den Webhook der Verbindung. Nur Ereignisse vom Typ message.received starten Runs; Zustell- und Lesebestätigungen sowie Nachrichten-Echos starten keine. connic prüft jede Nachricht, reiht für jeden verknüpften Agenten einen Run ein und antwortet mit 200. Antworten an den Kunden sendet eine eigene Outbound-Verbindung. Der Run erhält:

input.json
{
  "event_id": "7a3a86b3-0e77-48f6-914a-63ad28b7d64e",
  "message_id": "4031938e-60e4-4235-a8dd-0b1c55a23e7a",
  "channel": "sms",
  "from": "+14155550124",
  "to": "+14155550123",
  "text": "Wurde Bestellung 12345 verschickt?",
  "conversation_id": "telnyx_messaging:9e0f77d9-2fd8-5a8e-8d47-59fbf5b8a091",
  "raw": {
    "id": "4031938e-60e4-4235-a8dd-0b1c55a23e7a",
    "direction": "inbound",
    "type": "SMS",
    "messaging_profile_id": "<profile-id>",
    "from": {"phone_number": "+14155550124"},
    "to": [{"phone_number": "+14155550123"}],
    "text": "Wurde Bestellung 12345 verschickt?",
    "media": []
  }
}
  • event_id ist die Ereignis-ID von Telnyx. Wird dasselbe Ereignis erneut zugestellt, startet für einen Agenten kein zweiter Run.
  • from ist der Kunde und to der Absender der Verbindung, als E.164-Nummern ohne Kanalpräfix. Bei RCS ist to die ID des Agenten.
  • text ist der Nachrichtentext: bei WhatsApp-Medien die Bildunterschrift, bei einer RCS-Antwort auf einen Vorschlag dessen Text. Bei reinen Mediennachrichten ist er leer.
  • raw enthält die ursprünglichen Nachrichtendaten von Telnyx.
  • files und file_issues kommen hinzu, wenn die Nachricht Anhänge hat.

Anhänge

connic lädt eingehende Medien herunter und übergibt sie unter files. Jede Datei hat name (etwa attachment-1.jpg), mime_type, Base64-kodierte data und size in Byte. Eine Nachricht nimmt bis zu 50 Dateien an, höchstens 32 MiB insgesamt.

Eine ungültige oder nicht abrufbare Datei lässt connic einzeln aus. Überschreitet eine Datei die Anzahl- oder Größengrenze, behält connic die Dateien davor und lässt diese und alle folgenden aus. file_issues nennt jede ausgelassene Datei mit code, Meldung und überschrittener Grenze, und die Logs der Verbindung erhalten eine Warnung. Der Run startet auch ohne angenommene Datei, außer Files required ist für die Verknüpfung des Agenten aktiviert. Der Agent sollte files und file_issues prüfen.

Gespräche

conversation_id bleibt gleich für jede Kombination aus Inbound-Verbindung, Kanal, Absender und Kunde. Damit der Verlauf über mehrere Nachrichten erhalten bleibt, setze session.key auf input.conversation_id und deploye den Agenten erneut; Sessions sind standardmäßig aus. Ist eine automatische Outbound-Verbindung verknüpft, wird die Textausgabe des Agenten zur Antwort.

agents/messaging-assistant.yaml
version: "1.0"
name: messaging-assistant
description: "Beantwortet eingehende Telnyx-Nachrichten"
model: connic/gpt-5.6-terra
system_prompt: |
  Beantworte die eingehende Nachricht kurz.
  Frage nach fehlenden Angaben, statt Annahmen zu treffen.
  Gib die Antwort als einfachen Text zurück.
session:
  key: input.conversation_id
  ttl: 86400

Das Beispiel hält ein Gespräch 86.400 Sekunden lang. Die Session-Einstellungen beschreibt Agent YAML.

Einrichtung bei Telnyx

Modi: Inbound

Beim Anlegen einer Inbound-Verbindung trägt connic die Webhook-URL der Verbindung als primären Webhook am Messaging-Profil des Absenders ein, mit Webhook-API-Version 2, beziehungsweise am RCS-Agenten. Die Voice-Einstellungen der Nummer bleiben unverändert. Outbound-Verbindungen ändern in Telnyx nichts.

Das Anlegen einer Inbound-Verbindung ersetzt den primären Webhook des Messaging-Profils oder RCS-Agenten und entfernt dort den Ausweich-Webhook und den Telnyx-KI-Assistenten. connic schreibt die vorherigen Werte in die Logs der Verbindung und in das Audit Log des Projekts, wo sie auch nach dem Löschen der Verbindung erhalten bleiben. Wiederhergestellt werden sie nicht.
  • connic lehnt deaktivierte Messaging-Profile und RCS-Agenten ab, SMS- oder WhatsApp-Profile, die weitere Nummern oder Kurzwahlnummern enthalten, und Profile oder RCS-Agenten, deren Webhook schon auf eine andere connic-Verbindung zeigt. SMS- und WhatsApp-Verbindungen teilen ein Profil nur über denselben Kontozugang; siehe Gemeinsame Rufnummern.
  • Beim Wechsel des Absenders oder beim Löschen der letzten Inbound-Verbindung eines Profils entfernt connic den alten Webhook nur, wenn er noch der connic-URL entspricht. Das gilt auch für einen WhatsApp-Webhook, den du selbst eingetragen hast. Eine andere URL, die du später in Telnyx eingetragen hast, bleibt erhalten.
  • Kann connic den Webhook nicht entfernen, wird die Verbindung nicht gelöscht; prüfe den Absender in Telnyx und versuche es erneut.

Gemeinsame Rufnummern

SMS und WhatsApp können dieselbe Nummer mit getrennten Inbound-Verbindungen und Agenten nutzen. Beide Verbindungen müssen denselben Kontozugang verwenden und teilen sich eine Webhook-URL; connic ordnet jede Nachricht anhand von Kanal und Empfänger zu. Löschst du eine der Verbindungen, bleibt der andere Kanal erreichbar. Zwei Inbound-Verbindungen können nicht denselben Kanal und Absender verwenden.

Externe WhatsApp-Nummern

Bei einer WhatsApp-Nummer, die nicht bei Telnyx gehostet ist, findet connic das Messaging-Profil nicht. Trage die Profil-ID in whatsapp_profile_id ein. connic prüft, ob das Profil zum Konto gehört, kann aber nicht bestätigen, dass die Nachrichten der Nummer über dieses Profil laufen. Outbound-Verbindungen für die Nummer brauchen dieselbe whatsapp_profile_id.

Kopiere nach dem Anlegen der Inbound-Verbindung den Incoming-message webhook aus dem Detailbereich. Trage ihn in Telnyx als primären Webhook dieses Messaging-Profils ein, wähle Webhook-API-Version 2 und stelle sicher, dass eingehende Nachrichten der Nummer über das Profil laufen. Der Webhook für Statusänderungen des WhatsApp Business Accounts ist eine separate Einstellung und leitet keine Nachrichten weiter.

Kanäle und Absender

Die Liste Telnyx sender zeigt je nach Kanal die Rufnummern des Kontos mit SMS oder MMS, seine aktivierten WhatsApp-Nummern oder seine aktivierten RCS-Agenten. Registriere WhatsApp-Nummern und RCS-Agenten in Telnyx, bevor du sie auswählst; ein RCS-Agent braucht außerdem ein zugewiesenes Messaging-Profil und die Freigaben für den Produktivbetrieb. Ein Wechsel des Kontozugangs oder Kanals leert die Auswahl. Die Adressformate gelten für beide Modi:

KanalTelnyx-AbsenderKundenadresse
SMS / MMSRufnummer mit SMS oder MMS, etwa +14155550123+14155550124
WhatsAppAktivierte, registrierte Nummer, etwa +14155550123+14155550124
RCSID eines aktivierten RCS-Agenten des Kontos+14155550124

Rufnummern verwenden das E.164-Format mit führendem + und Ländervorwahl, ohne Kanalpräfix.

Ausgehende Zustellung

Modi: Outbound

Eine Outbound-Verbindung sendet über Telnyx vom konfigurierten Absender und seinem Messaging-Profil. Sie sendet, wenn der Run eines verknüpften Agenten abgeschlossen ist, wenn das Modell sie als Tool aufruft oder wenn Middleware sie aufruft, je nach Nutzung der Verknüpfung. Die Outbound-Einrichtung trägt keinen Webhook ein.

Automatische Payload

Eine automatische Verknüpfung sendet die abschließende Ausgabe des Runs. Reiner Text wird zum Nachrichtentext. Ein JSON-Objekt kann die Felder der Agent-Tool-Payload unten enthalten; der Text darf auch in body, message, response oder output stehen.

Payload für Agent-Tool und Middleware

Das Modell oder die Middleware übergibt ein JSON-Objekt mit diesen Feldern. Unbekannte Felder führen zu einem Validierungsfehler. Eine Nachricht braucht Text, Medien oder eine Vorlage. Das Beispiel sendet ein WhatsApp-Bild mit Bildunterschrift:

connector-payload.json
{
  "to": "+14155550124",
  "text": "Das Versandetikett",
  "media_urls": ["https://example.com/shipping-label.png"],
  "media_type": "image"
}
  • text: der Nachrichtentext. Bei reinen Mediennachrichten optional.
  • to: der Empfänger; siehe Empfänger.
  • media_urls: 1 bis 10 öffentliche Medien-URLs; siehe Medien.
  • media_type: bei WhatsApp-Medien image, video, document, audio oder sticker.
  • whatsapp_template: eine genehmigte Vorlage; siehe WhatsApp-Vorlagen.

Empfänger

connic sendet an den ersten Empfänger, den es findet:

  1. to in der Payload oder in der automatischen Ausgabe.
  2. Der Default recipient der Verbindung.
  3. Bei einem Run, den eine Inbound-Verbindung für Telnyx Messaging gestartet hat, der Kunde, der die Nachricht gesendet hat. Beide Verbindungen müssen denselben Kontozugang, Kanal, Absender und dasselbe Messaging-Profil verwenden.

Ein Standardempfänger hat Vorrang vor Antworten; lass ihn leer, um jedem Kunden zu antworten. Findet connic keinen Empfänger, schlägt der Versand fehl.

Medien

Übergib in media_urls öffentliche HTTP- oder HTTPS-URLs ohne eingebettete Zugangsdaten; Telnyx ruft die Dateien ab. Ausgehende Medien verwenden URLs, nicht das Base64-Format unter files aus eingehenden Nachrichten.

  • SMS/MMS: bis zu 10 Medien-URLs. Eine Nachricht mit Medien geht als MMS hinaus.
  • WhatsApp: eine Medien-URL mit media_type. Bei Bildern, Videos und Dokumenten wird der Text zur Bildunterschrift; Audio und Sticker dürfen keinen Text enthalten.
  • RCS: Text oder eine Medien-URL. Sende Text und Medien als getrennte Nachrichten.

WhatsApp-Vorlagen

Außerhalb des Kundenservice-Fensters von WhatsApp sendest du eine genehmigte Vorlage. Setze whatsapp_template als Standard an der Verbindung oder für eine einzelne Nachricht in der Payload. Bestimme die Vorlage über template_id oder über name und language.code. Optionale components vom Typ header, body oder button enthalten die Parameter im Telnyx-WhatsApp-Format.

template-payload.json
{
  "to": "+14155550124",
  "whatsapp_template": {
    "name": "order_confirmation",
    "language": {"code": "de"},
    "components": [{
      "type": "body",
      "parameters": [{"type": "text", "text": "12345"}]
    }]
  }
}

Eine Vorlage in der Payload ersetzt den Standard der Verbindung und lässt sich nicht mit Text oder media_urls kombinieren. Solange die Verbindung eine Standardvorlage hat, nutzt jede Nachricht diese: Der Text des Agenten wird ignoriert, Medien-URLs werden abgelehnt. Vorlagen setzen den Kanal WhatsApp voraus. Registrierung und Genehmigung erfolgen bei Telnyx und WhatsApp.

Zustellung und Wiederholungen

Ein erfolgreicher Run der Verbindung bedeutet, dass Telnyx die Anfrage angenommen hat, nicht, dass die Nachricht zugestellt wurde. Die Ausgabe des Runs enthält die Nachrichten-ID von Telnyx; die endgültige Zustellung prüfst du in Telnyx.

connic wiederholt Verbindungsfehler vor der Übermittlung und 429-Antworten, wartet dabei so lange, wie Retry-After von Telnyx verlangt, und versucht es insgesamt 3-mal. Andere Fehler werden nicht wiederholt. Ist das Ergebnis unklar, etwa nach einer Zeitüberschreitung oder einer 5xx-Antwort, prüfe Telnyx, bevor du erneut sendest; Telnyx hat die Nachricht womöglich schon angenommen.

Limits und Fehler

LimitWert
WhatsApp-Text4.096 UTF-8-Bytes; als Bildunterschrift zu Medien 1.024 Bytes
RCS-Text3.072 Zeichen
Ausgehende Medien10 URLs für MMS, laut Telnyx-Message-API insgesamt höchstens 1 MB; eine URL für WhatsApp und RCS
Eingehende Anhänge50 Dateien, höchstens 32 MiB insgesamt
Eingehende Anfrage256 KiB JSON
Eingehende Nachrichten1.000 pro Minute und Verbindung, auch wenn sich SMS- und WhatsApp-Verbindungen eine Webhook-URL teilen
Signaturenconnic lehnt Ereignisse ab, deren Zeitstempel mehr als 5 Minuten abweicht.
Zustellversuche3 insgesamt bei Fehlern, die wiederholt werden können
Aktive VerbindungenIst das Limit aktiver Verbindungen des Tarifs erreicht, schlägt das Anlegen in beiden Modi mit 403 fehl, statt die Verbindung pausiert anzulegen. Ein Deployment, das sie am Limit anlegen oder zurückholen würde, schlägt fehl.

Bei Inbound prüft connic die Ed25519-Signatur und den Zeitstempel jedes Ereignisses mit dem öffentlichen Schlüssel des Kontozugangs, danach Messaging-Profil, Kanal und Empfänger, und antwortet Telnyx mit einem dieser Status:

StatusBedeutung
200Angenommen. Ereignisse, die keine eingehenden Nachrichten sind, pausierte Verbindungen und Verbindungen ohne verknüpfte Agenten erhalten ebenfalls 200 und starten keinen Run.
400Das Ereignis ist ungültig, oder die Nachricht ist keine eingehende.
403Die Signatur ist ungültig oder zu alt, oder Messaging-Profil, Kanal oder Empfänger passen nicht zur Verbindung. Prüfe, ob der öffentliche Schlüssel des Kontozugangs aus demselben Telnyx-Konto stammt und ob Kanal und Absender der Verbindung zur Nachricht passen. Einen Signaturfehler zeigen auch die Logs der Verbindung.
404Unter dieser URL gibt es keine Inbound-Verbindung für Telnyx Messaging.
413Die Anfrage ist größer als 256 KiB.
415Die Anfrage ist kein JSON.
429Das Limit der Verbindung für eingehende Nachrichten ist erreicht.
503connic konnte die Nachricht in diesem Moment nicht einreihen, oder mehrere Inbound-Verbindungen passen zu ihr.
ProblemLösung
Das Anlegen der Verbindung schlägt fehlPrüfe den gemeldeten Telnyx-Fehler. Aktiviere Absender und Messaging-Profil und verschiebe andere Nummern und Kurzwahlnummern in ein anderes Profil.
Es startet kein RunPrüfe, ob die Verbindung aktiv und mit einem deployten Agenten verknüpft ist und ob Telnyx an die exakte Webhook-URL sendet. Prüfe bei einer externen WhatsApp-Nummer außerdem die Profilzuordnung der Nummer und Webhook-API-Version 2 in Telnyx.
Anhänge fehlenLies file_issues im Run-Input und die Warnung zu Anhängen in den Logs der Verbindung. Jeder Eintrag nennt die ausgelassene Datei und den Grund.
Versand scheitert ohne EmpfängerSetze to, hinterlege einen Standardempfänger oder sorge dafür, dass Inbound- und Outbound-Verbindung denselben Kontozugang, Kanal, Absender und dasselbe Messaging-Profil verwenden.
Telnyx lehnt die Nachricht abPrüfe den Telnyx-Fehler, die Registrierung des Absenders, das Messaging-Profil, die Limits des Kanals sowie Genehmigung und Parameter der Vorlage.
Keine automatische AntwortPrüfe die Outbound-Verknüpfung des Agenten und ihre ausgewählten Eingänge, danach das Ergebnis des Agenten und den Run der Outbound-Verbindung.