Site widget: quick chips, "Talk to a human", inline donation with Stripe
The "Talk to us" widget on a published site (configured via Site Settings → Widget) now ships three transactional surfaces beyond the basic chat.
Quick-action chips:
Up to 6 short chips render under the greeting on first open, before the visitor types anything. Defaults: "Book a time", "Talk to a human", "What do you offer?", "See your hours". Site authors can override the list per-site (site.siteWidget.quickActions). Empty array hides chips. Chips auto-hide the moment the visitor sends their first message.
Talk to a human (handoff):
The widget detects handoff intent in the visitor's message ("can I talk to a real person?", "speak to someone") and pivots to an inline contact form INSTEAD of letting the AI try to answer. The form collects name (optional) + email + phone + reason. Submit posts a structured lead to the same /website_submissions inbox + notification pipeline your forms use. A "Talk to a human" link is also always visible in the chat footer so visitors who don't know the phrasing can still find it.
Donate inline:
Detects donation intent ("I'd like to donate", "support your mission") and opens an amount picker inline. Visitor picks $25/$50/$100/$250 or types a custom amount + email + optional name. On submit:
• If your org has Stripe Connect configured — Stripe Embedded Checkout takes over the widget card with a secure card-entry form. Same flow your Donation block uses; one call to the createDonationIntent server function.
• If Stripe isn't configured — falls back to the lead-capture path: the donation intent (amount + email) is posted as a structured message to your inbox and the visitor sees "We'll email the secure giving link from {siteName}." No silent failure.
Confirmation card shows after a successful submit: "Thank you. We're sending the secure giving link for $50 to [email protected] now."
A "Donate" link sits next to "Talk to a human" in the chat footer for always-visible discovery.