External Destinations
External destinations are the off-app actions the AI is allowed to suggest — WhatsApp, phone, SMS, email, a website, a map location, an app store link, a social profile, a custom deeplink, or an inline video/document card. When a user message warrants one, the AI picks from this list and the SDK renders it as a button. The video/document media-card types are web-widget only — a client that doesn’t declare inline-media support (currently the React Native SDK) is never offered them, so they’re effectively web-only destinations. See the External Navigation guide for the full list of types and how each renders on the SDK side.
Why a Pre-Defined List
Without this, the AI would have to generate phone numbers and URLs from training data — leading to either refusals or hallucinated values. External destinations make the canonical set explicit: the AI suggests from your curated list, never invents one.
Fields
Each destination’s form is split into two groups:
- Channel configuration — the type-specific fields (phone number, URL, address, and so on). This is what actually gets opened when the button is tapped.
- AI context — what the AI uses to decide when to suggest this destination:
- Purpose (AI instruction) — the field the AI reads to match a user’s question to this destination. Be specific (“For users asking to cancel an order or reach live support”) rather than generic (“contact”), the same way you’d write a tool description.
- Keywords — comma-separated terms that boost matching confidence for related queries.
- Example User Questions — sample questions, one per line, that should route to this destination.
Description is a separate field from Purpose — it’s an internal note for your own team, not shown to end users and not used by the AI’s matching.
Purpose, Keywords, and Example User Questions aren’t just guidance — a message is matched against them before the AI ever sees the destination, and a destination that matches none of the three is never offered as a suggestion for that message. Fill in at least a few keywords or example questions per destination, not just a one-line Purpose.
Display Settings
- Priority (Low / Normal / High) — when more than one destination matches a message, higher-priority ones are suggested more often.
- Button Label — optional; if left empty, a built-in default for the type is used — set your own label to control the wording and language.
Preview & Test Link
The editor shows a live preview of the resulting chat bubble and button as you fill in the form, plus the resolved URL the button will open. A Test link next to the resolved URL opens it directly in a new tab so you can verify it before saving.
Video / Document Cards
The embed and document types don’t open a link — they render as an in-chat media card (title, description, cover image). embed accepts a YouTube, Vimeo, Instagram, X, or LinkedIn link (LinkedIn needs the post’s “Embed this post” code pasted in if a link alone doesn’t produce a preview); document accepts any HTTPS link to a document. Both auto-fetch a preview (title/image) that you can refresh or override by typing your own. A link that isn’t one of the supported video/post providers can’t be saved as embed — the form tells you so and suggests the Document type instead. Instagram and X often block automatic previews, so for those the cover image frequently doesn’t fill in on its own; add one by hand if you want the card to show an image. A single AI reply shows at most one video/post card. Because rendering these as a card is a web-widget feature, they’re filtered out server-side for any client that hasn’t declared support for it — the React Native SDK never receives them, so don’t rely on embed/document for an app-only audience.
Disabling vs Deleting
Disabling a destination (the Enable/Disable toggle in the list) keeps it around but hides it from the AI’s matching pool — useful for a temporarily-broken endpoint or one you want to turn back on later. Deleting removes it entirely, including from any navigation rule that referenced it; this can’t be undone.