Zum Hauptinhalt springen

Wie Variablen funktionieren

Variablen helfen dir dabei, den Prompt deines Agenten mit dynamischen Daten zu personalisieren. itellicoAI verwendet Jinja2 für Templates - in der offiziellen Doku findest du die vollständige Sprachreferenz.

Variablenquellen

Eingebaute Kontaktvariablen

Wenn ein Kontakt in deinem itellicoAI-Account existiert, sind diese 5 Felder automatisch verfügbar:
{{ contact.first_name }}
{{ contact.last_name }}
{{ contact.full_name }}
{{ contact.email }}
{{ contact.phone_number }}
Beispiel:
Hello {{ contact.first_name }}!
Your email is {{ contact.email }}.
✅ Kein Setup nötig - funktioniert automatisch, wenn der Kontakt existiert

Alles andere: Dynamic Context API

Alle anderen Daten müssen aus deiner Dynamic-Context-Verbindung stammen (von deinem Entwicklungsteam eingerichtet) und stehen dir als direkt nutzbare Variablen zur Verfügung. Siehe Dynamic Context API. Du kannst beliebige Felder zurückgeben. Zum Beispiel:
{{ language }}
{{ account_tier }}
{{ company_name }}
{{ order_id }}
{{ customer_since }}
{{ any_field_you_need }}
Beispiel - Deine API liefert:
{
  "language": "de",
  "account_tier": "premium",
  "company_name": "Acme Corp"
}
Dann kann dein Agent Folgendes verwenden:
{% if language == "de" %}
Guten Tag! Sie arbeiten für {{ company_name }}.
{% endif %}

{% if account_tier == "premium" %}
Priority support available.
{% endif %}
⚙️ Erfordert Setup - siehe Dynamic Context API

Verfügbare Variablen

Eingebaute Kontaktvariablen

Diese Variablen sind automatisch aus deinen itellicoAI-Kontakten verfügbar:
{{ contact.first_name }}
{{ contact.last_name }}
{{ contact.full_name }}
{{ contact.email }}
{{ contact.phone_number }}
Beispielverwendung:
You are speaking with {{ contact.first_name }} {{ contact.last_name }}.
Their email is {{ contact.email | default("not provided") }}.
Their phone number is {{ contact.phone_number }}.

Custom fields liegen NICHT unter contact. - das sind Variablen, die du direkt verwenden kannst, etwa {{ language }} oder {{ account_tier }}. Du musst sie über deine Dynamic-Context-Verbindung bereitstellen (von deinem Entwicklungsteam eingerichtet). Siehe Dynamic Context API.

Dynamic-Context-Variablen

Alle benutzerdefinierten Daten, die du über deine Dynamic-Context-Verbindung bereitstellst (von deinem Entwicklungsteam eingerichtet), werden als direkt nutzbare Variablen verfügbar:
{{ account_tier }}
{{ language }}
{{ company_name }}
{{ preferred_contact_method }}
Beispiel mit benutzerdefinierten Variablen:
{% if account_tier == "premium" %}
As a premium customer, you have priority support.
{% endif %}

{% if language == "de" %}
Sprechen Sie Deutsch.
{% endif %}

Company: {{ company_name | default("valued customer") }}

Richte eine Dynamic-Context-Verbindung ein (erfordert Developer-Setup), um benutzerdefinierte Variablen bereitzustellen. Alle JSON-Felder, die du zurückgibst, werden zu direkt nutzbaren Variablen (z. B. {"language": "de"} -> {{ language }}).

Datum & Uhrzeit

Das aktuelle Datum und die Uhrzeit sind automatisch als current_datetime in Begrüßungen und Prompts verfügbar:
{{ current_datetime }}                      # Aktueller Zeitstempel
{{ current_datetime.hour }}                 # Aktuelle Stunde (0-23)
{{ current_datetime | datetime("%H:%M") }}  # Mit datetime-Filter formatieren
{{ current_datetime | datetime("%A") }}     # Wochentag (Monday, Tuesday usw.)
Beispielverwendung:
{% if current_datetime.hour < 12 %}
Good morning, {{ contact.first_name }}!
{% elif current_datetime.hour < 17 %}
Good afternoon, {{ contact.first_name }}!
{% else %}
Good evening, {{ contact.first_name }}!
{% endif %}
Nutze current_datetime für fortgeschrittene zeitbasierte Logik wie Business-Hours-Routing, Tageszeit-Begrüßungen oder Scheduling-Constraints, ohne externe Datenquellen zu benötigen.
Nutze den datetime-Filter zur Formatierung. Direkte Datumsformatierungs-Methoden sind nicht verfügbar. Verwende stattdessen den oben gezeigten datetime-Filter.

Bedingte Logik

If-Statement

{% if condition %}
  This shows if condition is true
{% endif %}

If-Else

{% if account_tier == "VIP" %}
  Provide VIP service
{% else %}
  Provide standard service
{% endif %}

If-Elif-Else

{% if account_value > 10000 %}
  Enterprise tier customer
{% elif account_value > 1000 %}
  Professional tier customer
{% else %}
  Standard tier customer
{% endif %}

Praxisbeispiel

{% if language == "es" %}
Respond in Spanish. Use formal addressing (usted).
{% elif language == "fr" %}
Respond in French. Use formal addressing (vous).
{% elif language == "de" %}
Respond in German. Use formal addressing (Sie).
{% else %}
Respond in English. Use friendly, conversational tone.
{% endif %}

Filter

Filter transformieren Variablenwerte.

Häufige Filter

default: Fallback-Wert bereitstellen
{{ contact.first_name | default("there") }}
upper: In Großbuchstaben umwandeln
{{ contact.last_name | upper }}
lower: In Kleinbuchstaben umwandeln
{{ contact.email | lower }}
title: Title Case
{{ contact.first_name | title }}
length: Länge ermitteln
{% if contact.phone_number | length > 10 %}
  International number detected
{% endif %}
datetime: Datetime-Objekte formatieren
{{ current_datetime | datetime("%H:%M") }}         # 14:30
{{ current_datetime | datetime("%d.%m.%Y") }}      # 24.01.2025
{{ current_datetime | datetime("%A, %B %d") }}     # Monday, January 24

Filter verketten

{{ contact.first_name | default("Friend") | title }}

Schleifen

Über Listen iterieren (fortgeschrittener Anwendungsfall):
{% for item in list_variable %}
  Process {{ item }}
{% endfor %}

Praktische Beispiele

Beispiel 1: Personalisierte Begrüßung

{% if contact.first_name %}
Hello {{ contact.first_name }}, great to hear from you!
{% else %}
Hello! Thanks for calling!
{% endif %}

{% if contact.email %}
I have your contact information on file, so I can send you a confirmation after our call.
{% endif %}

Beispiel 2: Benutzerdefinierte Geschäftslogik (erfordert Dynamic Context API)

{% if contact.first_name %}
Hello {{ contact.first_name }}, thanks for calling {{ company_name }}!
{% else %}
Hello! Thanks for calling {{ company_name }}!
{% endif %}

{% if account_tier == "premium" %}
As a premium customer, you have priority support. How can I help you today?
{% else %}
How can I help you today?
{% endif %}
Variablen wie company_name und account_tier müssen von deiner Dynamic-Context-Verbindung bereitgestellt werden (von deinem Entwicklungsteam eingerichtet). Siehe Dynamic Context API.

Beispiel 3: Zeitbasierte Prompt-Logik

Current time: {{ current_datetime | datetime("%H:%M") }}

{% if current_datetime.hour >= 17 or current_datetime.hour < 9 %}
Outside normal business hours. If customer needs immediate assistance:
"Our regular support hours are 9 AM to 5 PM. For urgent issues, I can take your information and have someone call you first thing in the morning, or you can reach our emergency line at [number]."
{% else %}
Within business hours. Full support available.
{% endif %}

Beispiel 4: Mehrsprachige Unterstützung (erfordert Dynamic Context API)

Customer's preferred language: {{ language | default("en") }}

{% if language == "es" %}
Language: Spanish
Greeting: "¡Hola!"
Tone: Formal (use "usted")
Knowledge collection: "FAQ Español"
{% elif language == "de" %}
Language: German
Greeting: "Guten Tag!"
Tone: Formal (use "Sie")
Knowledge collection: "FAQ Deutsch"
{% else %}
Language: English
Greeting: "Hello!"
Tone: Friendly and conversational
Knowledge collection: "FAQ English"
{% endif %}

Beispiel 5: Account-Tier-Logik

Account value: ${{ account_value | default(0) }}

{% if account_value >= 50000 %}
ENTERPRISE CUSTOMER
- Offer white-glove service
- Direct access to account manager
- Priority response times
- Custom solutions available
{% elif account_value >= 10000 %}
PROFESSIONAL CUSTOMER
- Premium support tier
- Dedicated support team
- Priority queue
{% else %}
STANDARD CUSTOMER
- Standard support
- Knowledge base first
- Transfer for complex issues
{% endif %}

Variablen testen

Mit verschiedenen Daten testen

  1. Öffne das Agent testen-Menü des Agenten und wähle Chat, ein browserbasiertes Gespräch oder Telefonanruf
  2. Teste Szenarien mit verschiedenen Kontaktdaten:
    • Mit Vorname und ohne
    • VIP- vs. Standardkunde
    • Verschiedene Sprachen
    • Verschiedene Zeitzonen

Häufige Probleme

ProblemUrsacheLösung
Variable wird leer angezeigtKein Default angegeben| default("Fallback") hinzufügen
SyntaxfehlerTippfehler im VariablennamenSchreibweise gegen verfügbare Variablen prüfen
Bedingung funktioniert nichtFalscher Vergleichsoperator== statt = verwenden
Filter wird nicht angewendetFilter existiert nichtFilternamen-Schreibweise prüfen

Best Practices

Nimm niemals an, dass eine Variable einen Wert hat. Verwende immer Defaults.Schlecht:
Hello {{ contact.first_name }}!
Gut:
Hello {{ contact.first_name | default("there") }}!
Komplexe verschachtelte Bedingungen sind schwer zu debuggen. Halte es einfach.Zu komplex:
{% if account_tier == "VIP" and account_value > 10000 and region == "US" %}
Einfacher:
{% if account_tier == "VIP" %}
Teste mit:
  • Fehlenden Daten (alle Felder leer)
  • Unerwarteten Werten
  • Sehr langen Strings
  • Sonderzeichen

Nächste Schritte

Prompt-Leitfaden

Variablen in vollständigen Beispielen in Aktion sehen

Agent testen

Prüfen, ob deine Variablen korrekt funktionieren