Website widget and demo pages
Design the website widget and branded demo links.
Design the website widget and branded demo links. 6 tools.
trillet_get_website_widget
Get website widget design
Read a call flow's website widget design (the <trillet-widget> embed: voice, chat or type-or-talk) plus the embed snippet to paste on a site. saved: false means defaults are in use. Visitors can only start conversations when publicAccess is on.
Flags: read-only
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_set_website_widget
Design the website widget
Create or update a call flow's website widget design: voice/chat/type-or-talk mode, colours, logo, copy, suggested prompts, terms, feedback. Only the fields you pass change (the stored design is read and merged; null clears a field). Applies to live embeds immediately (not staged in a draft; existing embeds pick it up within about a minute). Attributes written on a site's <trillet-widget> tag override the saved design. Returns the embed snippet. Set public_access true unless the flow already allows public calls, or visitors get 403.
Flags: writes idempotent open-world
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
mode | "voice" | "text" | "both" | no | "voice" = call button (default), "text" = chat, "both" = type-or-talk (one session the visitor can type or speak in) |
placement | "bottom-right" | "bottom-left" | "top-right" | "top-left" | no | |
variant | "compact" | "expanded" | no | |
theme | "light" | "dark" | no | |
avatarStyle | "orb" | "image" | "initials" | no | "image" uses avatar |
brandColor | string | no | Main button colour |
orbColor1 | any | no | Orb gradient start (avatarStyle orb) |
orbColor2 | any | no | Orb gradient end |
backgroundColor | any | no | Card/panel background; null follows the theme |
textColor | any | no | |
buttonTextColor | any | no | |
brandName | string | no | |
brandLogo | string | no | https image URL (rendered on the customer's site, so it must be public) |
avatar | any | no | https image URL for avatarStyle image |
title | string | no | Header title (defaults to the agent name) |
launcherText | string | no | Text on the collapsed launcher |
greeting | string | no | Line shown above the input before a conversation |
chatWelcome | string | no | First agent message in chats (text/both). Replaces the flow's phone greeting for chats only |
inputPlaceholder | string | no | |
startCallText | string | no | |
messageText | string | no | |
suggestedPrompts | string[] | no | Up to 4 quick-start chips |
termsText | string | no | Markdown the visitor must accept before their first conversation |
feedback | "none" | "end" | no | "end" asks for thumbs up/down after a conversation |
reset | boolean | no | Start from defaults instead of the stored design Default: false. |
public_access | boolean | no | Also set settings.security.publicAccess (required for website visitors) |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_list_demo_links
List demo links
List a call flow's shareable demo links (max 5 per flow) with their URL, limits, and custom page design. URLs use app.trillet.ai. A whitelabel (agency) workspace shares the same path on its custom domain: https://<customDomain>/call-flows/demo/<hash>. GOTCHA: while the flow has an active draft, this read shows the draft's copy of the links, which can be stale; has_active_draft flags it.
Flags: read-only
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_create_demo_link
Create demo link
Create a shareable demo link for a call flow (anyone with the URL can talk to the agent in the browser). Saved to production immediately and turns publicAccess on. Max 5 links per flow. Optional usage caps protect the wallet: per_visitor_minutes and total_minutes. Style the page afterwards with trillet_set_demo_page_design and trillet_upload_demo_page_logo. URLs use app.trillet.ai. A whitelabel (agency) workspace shares the same path on its custom domain: https://<customDomain>/call-flows/demo/<hash>.
Flags: writes open-world
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
name | string | no | Internal label, shown in the dashboard Default: "New Demo Link". |
expires_in_days | integer | no | |
per_visitor_minutes | integer | no | Cap per visitor (by IP); omit for no cap |
total_minutes | integer | no | Cap across all visitors; omit for no cap |
show_countdown_timer | boolean | no | Show the remaining-minutes countdown on the page Default: false. |
dynamic_variables | object[] | no | {{variables}} the flow uses, filled per link |
draft_id | string | no | Pin the link to a draft so it tests unpublished changes |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_set_demo_page_design
Design a demo link's page
Brand one demo link's page: template custom, colours, font, corner radius, copy, CTA button, which features show (live transcript, timer, post-call summary and chosen post-call answers, call again, mute, Powered by), and which sites may iframe it and receive results. Only the fields you pass change (the stored design is read and merged). Live immediately. Set template "custom" or nothing shows. Upload the logo or tab icon with trillet_upload_demo_page_logo. Returns the page URL and an iframe snippet (?embed=1 = transparent background + trillet-demo:* postMessage events).
Flags: writes idempotent open-world
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
link_id | string | yes | link_id from trillet_list_demo_links / trillet_create_demo_link |
template | "classic" | "custom" | no | "custom" turns on the branded page; "classic" (default) is the original page and ignores every design field |
brand | object | no | Logo and tab icon are NOT set here: use trillet_upload_demo_page_logo |
content | object | no | |
features | object | no | |
embed | object | no | |
clear_logo | boolean | no | |
clear_favicon | boolean | no | |
reset | boolean | no | Start from defaults instead of the stored design (keeps the uploaded logo unless clear_logo) Default: false. |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_upload_demo_page_logo
Upload demo page logo or tab icon
Upload the logo (or, with kind favicon, the browser-tab icon) for one demo link's custom page. PNG, JPG or WebP under 2MB; SVG is rejected. Pass a local file_path or an https image_url (downloaded here, then uploaded). Live immediately. The returned logo url is a public https image, so it can also be reused as the website widget's brandLogo.
Flags: writes idempotent open-world
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
link_id | string | yes | |
file_path | string | no | Absolute path to a local PNG/JPG/WebP |
image_url | string | no | https URL of the image, e.g. from the client's website |
kind | "logo" | "favicon" | no | Default: "logo". |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |