BLOG

ilert Call Flows mit Terraform verwalten

Marko Simon
October 23, 2025
Table of Contents:

Call Flows ermöglichen es Ihnen, Sprach-Workflows mit Nodes wie „Audio message“, „Support hours“, „Voicemail“, „Route call“ und vielen weiteren zu entwerfen. Der ilert Terraform Provider enthält jetzt eine ilert_call_flow -Resource, sodass Sie diese Flows versionsverwaltet über Umgebungen hinweg konfigurieren können. Dieser Blogbeitrag bietet einen Überblick darüber, wie Call Flows in Terraform verwaltet werden, und erläutert Vorteile und zentrale Anwendungsfälle.

Vorteile der Verwaltung von Call Flows über Terraform

Die ilert_call_flow Terraform Resource ermöglicht es Ihnen, Call Flows als Code zu definieren – gemeinsam mit Alarmquellen, Eskalationsketten und Dienstplänen. Damit fällt das Anruf-Routing unter denselben IaC-Prozess, den Sie möglicherweise bereits für ilert nutzen.

Das Speichern von Call Flows in Terraform macht Änderungen kontrolliert, testbar und nachvollziehbar. Sie erhalten Code Reviews, Diffs vor dem Apply, konsistente Konfigurationen zwischen Staging und Produktion sowie einfache Rollbacks. Teams können außerdem bestehende, in der UI erstellte Ressourcen in den State importieren, um ein Neuanlegen zu vermeiden.

Einfacher Call Flow: Alert erstellen

Ein Call Flow, der einen Alarm erstellt, sobald jemand den Anruf annimmt, sieht so aus:

1resource "ilert_call_flow" "call_flow" {
2  name     = "Call Flow Demo"
3  language = "en"
4
5  root_node {
6    node_type = "ROOT"
7
8    branches {
9      branch_type = "ANSWERED"
10
11      target {
12        node_type = "CREATE_ALERT"
13        metadata {
14          alert_source_id = "your_alert_source_id"
15        }
16      }
17    }
18  }
19}

ROOT wartet auf einen eingehenden Anruf. Bei ANSWERED erstellt der Flow einen Alarm in der angegebenen Alarmquelle und entsprechender Eskalationskette.

Bitte beachten Sie, dass Telefonnummern nicht über Terraform zugewiesen werden können. Weisen Sie nach dem ersten Apply in der Web-UI eine Nummer dem Call Flow zu.

Fortgeschrittener Call Flow: Support-Hotline

Sie können auch komplexere Flows erstellen, z. B. eine Support-Hotline mit Verzweigungen innerhalb oder außerhalb der Geschäftszeiten. Beginnen Sie mit dem ROOT-Knoten und öffnen Sie den ersten Pfad. Hier wird dann fortgesetzt, sobald der Anruf angenommen wird.

1resource "ilert_call_flow" "business_hours_support" {
2  name     = "Business Hours Support"
3  language = "en"
4
5  root_node {
6    node_type = "ROOT"
7
8    branches {
9      branch_type = "ANSWERED"
10      # ...

Begrüßen Sie den Anrufer mit einer kurzen TTS-Willkommensnachricht.

1# ...
2target {
3    node_type = "AUDIO_MESSAGE"
4    metadata {
5      text_message   = "Thank you for calling <company name>."
6      ai_voice_model = "emma"
7    }
8# …

Fügen Sie nun Supportzeiten hinzu und verzweigen Sie den Flow in OUTSIDE und DURING.

1# ...
2branches {
3  branch_type = "CATCH_ALL"
4
5  target {
6    node_type = "SUPPORT_HOURS"
7    metadata {
8      support_hours_id = …
9    }
10
11    branches {
12      branch_type = "BRANCH"
13      condition   = "context.supportHoursState == 'OUTSIDE'"
14      # ...
15    }
16
17    branches {
18      branch_type = "BRANCH"
19      condition   = "context.supportHoursState == 'DURING'"
20      # ...
21    }
22# …

Behandeln Sie als Nächstes OUTSIDE-Zeiten: Der Anrufer wird zur Voicemail geleitet und es wird, sofern eine Aufnahme vorliegt, ein Alarm zur Nachverfolgung erstellt.

1# ...
2target {
3    node_type = "VOICEMAIL"
4    metadata {
5      text_message   = "You've reached us outside of our business hours. Please leave your name, contact information, and a brief message."
6      ai_voice_model = "emma"
7    }
8
9    branches {
10      branch_type = "BRANCH"
11      condition   = "context.recordedMessageUrl != null"
12    
13      target {
14        node_type = "CREATE_ALERT"
15        metadata {
16          alert_source_id = ...
17        }
18      }
19    }
20}
21# …

Schließen Sie mit DURING-Zeiten ab: Der Anruf wird an den angegebenen Benutzer weitergeleitet.

1# ...
2target {
3    node_type = "ROUTE_CALL"
4    metadata {
5      call_style = "ORDERED"
6      targets {
7        type   = "ON_CALL_SCHEDULE"
8        target = "your_schedule_id"
9      }
10    }
11}
12# …

Das vollständige Skript mit beiden Call-Flow-Resources finden Sie in unserem öffentlichen Terraform-Playground.

Blog-Beiträge, die dir gefallen könnten:

Sind Sie bereit, Ihr Incident-Management zu verbessern?

Start for free
Unsere Cookie-Richtlinie
Wir verwenden Cookies, um Ihre Erfahrung zu verbessern, den Seitenverkehr zu verbessern und für Marketingzwecke. Erfahren Sie mehr in unserem Datenschutzrichtlinie.
Open Preferences
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.