Zum Hauptinhalt springen
connic
Starte kostenlos

Twilio Messaging

Von connic
InboundOutbound

Lass einen Agenten SMS, MMS, WhatsApp- und RCS-Nachrichten an deine Twilio-Absender beantworten. Antworten, Medien und genehmigte WhatsApp-Vorlagen versendest du über dasselbe Twilio-Konto.

Publisher
Von connic
Modi
Inbound, Outbound
Einrichtung
Dashboard oder connectors/*.yaml

Verbinde einen Agenten mit deinen vorhandenen Absendern

Wähle eine gespeicherte Twilio-Connection, einen Kanal und einen Absender. Beim Speichern einer eingehenden Verbindung richtet connic den Webhook des Absenders für eingehende Nachrichten automatisch in Twilio ein.

Eine Connection für Voice und Messaging
Die Connection enthält deine Account SID, die Region und den Auth Token dieser Region. Twilio-Voice-Verbindungen können dieselbe Connection nutzen, und jede Verbindung legt ihren eigenen Kanal und Absender fest.
Webhook automatisch eingerichtet
connic trägt den Webhook beim Speichern ein und ersetzt einen vorhandenen Webhook oder eine Messaging-TwiML-App. Die vorherigen Werte stehen in den Logs der Verbindung. Gehört der Absender zu einem Messaging Service, stelle dort Defer to sender's webhook ein.
WhatsApp Sandbox
Für die Sandbox ist ein manueller Schritt nötig. Trage die Webhook-URL der Verbindung unter When a Message Comes in ein, wähle HTTP POST und speichere.
Regionen
US1 unterstützt SMS/MMS, WhatsApp und RCS. IE1 unterstützt SMS-Text ohne Medien und ohne +1-Nummern, AU1 nur Voice.
Kanäle und Regionen
KanalTwilio-AbsenderKundenadresseRegion
SMS / MMS+4915112345678+4917612345678US1, IE1 (nur SMS-Text)
WhatsAppwhatsapp:+4915112345678whatsapp:+4917612345678US1
RCSrcs:example_service_agentrcs:+4917612345678US1

Jede Nachricht kommt geprüft und lesbar an

Twilio signiert jede Anfrage. connic prüft sie und startet dann jeden verknüpften Agenten mit dem Text, den Angaben zum Absender und heruntergeladenen Anhängen.

Geprüfte Anfragen
connic prüft X-Twilio-Signature mit deinem Auth Token und gleicht Konto, Kanal und Empfänger ab. Ein wiederholter Webhook mit derselben Message SID führt zum selben Run.
Medien als Dateien
Anhänge kommen in files an, bis zu 10 pro Nachricht und insgesamt 10 MiB, und setzen eine US1-Connection voraus. Ausgelassene Dateien stehen in file_issues.
Gesprächsverlauf
conversation_id steht für einen Kunden an einem Absender. Setze session.key auf input.conversation_id, dann teilen sich Folgenachrichten eine Session. Sessions sind nicht automatisch aktiv.
input.json
{
  "message_sid": "SM3f9c2a7b8d1e4f60a5b7c9d2e4f6a8b1",
  "channel": "sms",
  "from": "+4917612345678",
  "to": "+4915112345678",
  "text": "Has order ord_8812 shipped yet?",
  "raw": {
    "MessageSid": "SM3f9c2a7b8d1e4f60a5b7c9d2e4f6a8b1",
    "From": "+4917612345678",
    "To": "+4915112345678",
    "Body": "Has order ord_8812 shipped yet?",
    "NumMedia": "0"
  },
  "conversation_id": "twilio_messaging:9e0f77d9-2fd8-5a8e-8d47-59fbf5b8a091"
}
agents/sms-support.yaml
session:
  key: input.conversation_id
  ttl: 86400

Antworte dem Kunden oder schreib ihn zuerst an

Verknüpfe eine ausgehende Verbindung mit derselben Connection, demselben Kanal und Absender. Sie sendet nach dem Run, wenn der Agent sie als Tool aufruft oder wenn Middleware sie aufruft.

Reihenfolge der Empfänger
Zuerst zählt ein ausdrücklich übergebenes to, dann der Standardempfänger der Verbindung, dann der Kunde, der geschrieben hat. Lass den Standardempfänger leer, damit jede Antwort an den jeweiligen Kunden geht.
Text und Medien
Sende bis zu 1.600 Zeichen Text und öffentliche media_urls, die Twilio abruft, bis zu 10 bei MMS und eine bei WhatsApp oder RCS.
WhatsApp-Vorlagen
Außerhalb des 24-Stunden-Kundenservicefensters sendest du eine genehmigte Vorlage mit ihrer Content SID in content_sid und den Werten in content_variables. Eine Vorlage lässt sich nicht mit text oder media_urls kombinieren.
Zustellstatus
Ein abgeschlossener Outbound-Run bedeutet, dass Twilio die Anfrage angenommen hat. Die Ausgabe des Runs enthält die Message SID, mit der du die Zustellung in den Messaging Logs verfolgst.
reply.json
{
  "text": "Here is how to swap the filter.",
  "to": "whatsapp:+4917612345678",
  "media_urls": ["https://example.com/guides/filter.png"]
}
template.json
{
  "to": "whatsapp:+4917612345678",
  "content_sid": "HX7d2c4e9a1b3f5d8c0e2a4b6c8d0f1e3a",
  "content_variables": { "1": "Jana", "2": "10:30" }
}

Deklariere beide Richtungen im Code

Lege die eingehende und die ausgehende Verbindung als YAML-Dateien in connectors/ an. Beide verweisen per Name auf die Twilio-Connection, deshalb enthalten die Dateien keine Zugangsdaten, und jedes Deployment legt sie für sein Environment an oder aktualisiert sie.

connectors/support-sms.yaml
type: twilio_messaging
mode: inbound
connection: support-twilio
config:
  channel: sms
  sender: "+4915112345678"
agents:
  - sms-support
connectors/support-sms-replies.yaml
type: twilio_messaging
mode: outbound
connection: support-twilio
config:
  channel: sms
  sender: "+4915112345678"
agents:
  - name: sms-support
    outbound: { usage: automatic, source: [support-sms] }

Wo Twilio Messaging passt

Wähle ein Szenario und sieh, was von Twilio ankommt und was der Agent zurückschickt.

Ein Kunde schickt eine Frage mit Foto, und der Agent antwortet über die verknüpfte ausgehende Verbindung auf WhatsApp.

Kunde auf WhatsApp
Inbound Twilio Messaging
whatsapp-support
Antwort auf WhatsApp
input.json
{
  "message_sid": "MM5a1c3e7f9b2d4a6c8e0f1a3b5c7d9e2f",
  "channel": "whatsapp",
  "from": "whatsapp:+4917612345678",
  "to": "whatsapp:+4915112345678",
  "text": "The coffee machine shows this error. What should I do?",
  "raw": {
    "Body": "The coffee machine shows this error. What should I do?",
    "NumMedia": "1"
  },
  "conversation_id": "twilio_messaging:4c2a9e1b-7f3d-5b8e-a6c4-0d2f8e1a3b5c",
  "files": [
    {
      "name": "ME8b2d4f6a1c3e5b7d9f0a2c4e6b8d1f3a.jpg",
      "mime_type": "image/jpeg",
      "data": "<base64-bytes>",
      "size": 182344
    }
  ]
}
outbound-run-output.json
{
  "sid": "SM9e1d3b5f7a2c4e6b8d0f1a3c5e7b9d2a",
  "status": "queued",
  "to": "whatsapp:+4917612345678",
  "from": "whatsapp:+4915112345678",
  "error_code": null
}

Ein Kunde schreibt deiner Nummer, und der Agent antwortet von derselben Nummer mit dem Stand der Bestellung.

Kunde per SMS
Inbound Twilio Messaging
order-status
SMS-Antwort von deiner Nummer
input.json
{
  "message_sid": "SM3f9c2a7b8d1e4f60a5b7c9d2e4f6a8b1",
  "channel": "sms",
  "from": "+4917612345678",
  "to": "+4915112345678",
  "text": "Has order ord_8812 shipped yet?",
  "raw": { "Body": "Has order ord_8812 shipped yet?", "NumMedia": "0" },
  "conversation_id": "twilio_messaging:9e0f77d9-2fd8-5a8e-8d47-59fbf5b8a091"
}
outbound-run-output.json
{
  "sid": "SM6c8e0a2b4d6f8a1c3e5b7d9f0a2c4e6b",
  "status": "queued",
  "to": "+4917612345678",
  "from": "+4915112345678",
  "error_code": null
}

Ein täglicher Zeitplan startet den Agenten, und er sendet eine genehmigte WhatsApp-Vorlage über eine ausgehende Verbindung, die er als Tool aufruft.

Täglicher Zeitplan
Cron
appointment-reminders
WhatsApp-Vorlage über Twilio
input.json
{
  "trigger": "cron",
  "schedule": "0 7 * * *",
  "triggered_at": "2026-10-14T07:00:00",
  "prompt": "Remind every customer who has an appointment tomorrow."
}
agent-tool-payload.json
{
  "to": "whatsapp:+4917612345678",
  "content_sid": "HX7d2c4e9a1b3f5d8c0e2a4b6c8d0f1e3a",
  "content_variables": { "1": "Jana", "2": "10:30" }
}

Ein Kunde fragt, wie er ein Teil tauscht, und der Agent antwortet per RCS mit den Schritten und einem Bild.

Kunde auf RCS
Inbound Twilio Messaging
repair-guide
RCS-Antwort mit Bild
input.json
{
  "message_sid": "SM2b4d6f8a0c1e3a5c7e9b1d3f5a7c9e0b",
  "channel": "rcs",
  "from": "rcs:+4917612345678",
  "to": "rcs:example_service_agent",
  "text": "How do I replace the water filter?",
  "raw": { "Body": "How do I replace the water filter?", "NumMedia": "0" },
  "conversation_id": "twilio_messaging:8d3f1a5c-2e7b-5c9d-b1e3-6f0a2c4e8b7d"
}
agent-output.json
{
  "text": "Turn the old filter to the left and pull it out. See step 2.",
  "media_urls": ["https://example.com/guides/water-filter-step-2.png"]
}

FAQ zu Twilio Messaging

Ja. Twilio-Voice- und Twilio-Messaging-Verbindungen nutzen dieselbe gespeicherte Connection mit Account SID, Region und Auth Token. Jede Verbindung behält ihren eigenen Kanal und Absender, und die Region muss den Kanal unterstützen. AU1 unterstützt nur Voice.

Ja. Verknüpfe eine ausgehende Verbindung mit einem Agenten, den ein Zeitplan, ein Webhook oder eine andere Verbindung startet, und lege einen Standardempfänger fest oder übergib to mit der Nachricht. Bei WhatsApp braucht eine Nachricht außerhalb des 24-Stunden-Kundenservicefensters eine genehmigte Vorlage.

Nur mit einer Session. Setze session.key am Agenten auf input.conversation_id und stelle ihn erneut bereit. Nachrichten desselben Kunden an denselben Absender teilen sich dann eine Session, solange sie besteht.

Ja. Aktiviere die Sandbox in Twilio und tritt ihr mit dem Testtelefon bei. Wähle in connic den Absender WhatsApp Sandbox und trage die Webhook-URL der Verbindung in den Sandbox-Einstellungen unter When a Message Comes in mit HTTP POST ein. Für den Produktivbetrieb nutzt du einen registrierten WhatsApp-Absender.

Er heißt, dass Twilio die Anfrage angenommen hat. Den endgültigen Status findest du mit der Message SID aus der Ausgabe des Runs in den Messaging Logs von Twilio. Ist das Ergebnis einer Anfrage unklar, wiederholt connic sie nicht, weil ein zweiter Versuch die Nachricht doppelt senden könnte.