Changelog

Follow up on the latest improvements and updates.

RSS

Two updates to Distro are live for all customers:
  1. Spam records get blocked before they're ever routed
  2. Scheduled Triggers can now run on any schedule you can write as a cron expression
1. Spam Checker Now Runs in Distro Flows
The same checks that filter spam form submissions in Concierge and spam conversations in Chat now runs inside Distro. Checks, weights, and the threshold are set in Spam Checker settings under 'Chili Agents' and are shared across all three, so a single configuration covers Concierge, Chat, and Distro.
How It Works
Add the Spam Checker node after your Entry Rule and Delay (those two can be in either order) and before any Routing Rule or CRM Matching nodes. Clean records continue through the Flow as normal; spam records are blocked, routing stops, and the record remains unassigned.
What's Possible
  • When a record is marked as spam, write the score to a Spam Score field in Salesforce and update any other Salesforce fields you pick, for example setting Description to "This is spam", all in one Salesforce update
  • See blocked records in Distro Logs with a "Blocked as Spam" banner, counted in the log summary totals
  • Read the full breakdown on any blocked record: the score against your threshold, and which checks passed or failed
Learn more in our Support Article.
2. Run Routing Only When Your Team Is Working
A recurring Scheduled Trigger could only run every hour, day, week, or month. That covered most cases, but not "weekdays only" or "twice a day, 9 AM and 5 PM", so teams who didn't want routing firing at midnight or over the weekend were stuck running a single daily job.
What's New
"Flow starts every" now has a fifth option: Custom (Cron). Enter a Quartz cron expression and the Flow runs on every occurrence it matches.
[Second] [Minute] [Hour] [Day of Month] [Month] [Day of Week]
For example:
  • 0 0 8 ? * MON-FRI
    - 8 AM, weekdays only
  • 0 0 9,17 * * ?
    - twice a day, 9 AM and 5 PM
  • 0 0 8 ? * FRI#3
    - the third Friday of each month
  • 0 0 8 L * ?
    - the last day of each month
The Timezone you select on the Flow is the timezone in which the schedule is evaluated.
Things to note
  • One of Day of Month and Day of Week must be ?. Quartz can't honor both at once, so setting both, or neither, is rejected. A five-field Unix expression is rejected too, since seconds are required
  • Start Date and Start Time bound when the expression starts firing; they don't add a run of their own. Picking Custom (Cron) sets them to the next whole hour, and you can override it to run sooner
  • Expressions are checked as you type and again on publish, so a broken schedule can't go live
Learn more in the 'Use a cron expression' section of our Support Article.
The Web Experiences snippet now accepts a lead object and a set of JS options, so a page that already knows who someone is can pass that straight to the widget.
What's Changed and Why
The snippet let you specify a journey (playbookId) and nothing else. Anything beyond that had to be passed as a URL parameter, so a page that already knew who someone was had no way to tell Chili Piper. Concierge's ChiliPiper.submit() has accepted a lead object for years; the Web Experiences snippet now does too.
What You Can Pass
  • lead
    - visitor fields as key-value pairs, so the widget knows who someone is before they type anything
  • locale
    - set the widget language from the page instead of the browser
  • accountId
    , opportunityId, campaignId + status, caseId - identify the Salesforce Account for routing, and relate the booked meeting to the right record
  • meetingTypeId
    - force a specific meeting type
  • event
    - write extra field values onto the calendar Event
  • onTriggered
    ,
    onSuccess
    ,
    onError
    - callbacks in the config object, rather than listening for postMessage globally
A field passed via
lead
isn't asked for again. If the page supplies the email, the Send Data Field step skips it.
Why It Matters
  • In-app: embed Chat and pass the logged-in user, with no "what's your email?" step
  • Attribution without URL parameters: read UTM or campaign data from local storage and pass it in at init; it reaches Salesforce without touching the address bar
  • Post-booking: someone books, gets redirected to a thank-you page, and Chat loads there with their details already in hand
Things To Note
  • Every key in the lead must match a configured Smart Parameter or a data field reference. If one key doesn't match, none of the values are used, and there's no error message. Check each key before you deploy
  • Dynamic tags in chat messages don't resolve values passed via lead. To greet someone by name, collect the field in the flow
  • The record options are Salesforce-only; there's no HubSpot equivalent in the snippet
Learn more in our Support Article.
The newest round of API and MCP updates is live - here's what's new.
ChatGPT and Gemini Connect to Our MCP Server
You can now connect ChatGPT and Gemini to the Chili Piper MCP. If you need help connecting to the MCP, please see this help article.
See and Fix Your Integrations
  • Read and fix user mappings from the API.
    See how your users are matched to their counterparts in Salesforce, HubSpot, Gong, Slack, and Microsoft Teams, and fix a mismatched rep without hunting through the UI. You send the full set of mappings and they're applied together.
  • Connection status covers all your integrations.
    Salesforce, HubSpot, calendars, Slack, Gong, and Outreach connection state is now on the API, with a single endpoint. Status now comes directly from each service.
More Control Over Routers and Distribution
  • More CRM actions on a router.
    Add to Campaign used to be the only router CRM action you could read and set. You now get Record Update and insert actions for both Salesforce and HubSpot, and you can look up Salesforce campaigns from the API instead of tracking down the campaign ID yourself.
  • Workspace distribution settings are readable and editable.
    The workspace-level round-robin settings are now exposed, covering vacation calibration, crediting a rep back after a cancel or no-show, and the timing of counter resets.
More Visibility Into What Happened
  • Concierge phone-call logs on the API
    . Phone-call logs from Concierge routers now come back the same way you already pull Chat and Distro logs.
  • Where a meeting was booked from.
    The meeting response now includes the source URL, its parameters, and UTM parameters, so you can trace which page or link generated a booking.
  • Availability, confirmed.
    The availability API now indicates whether a user has configured their availability.
Adding a User No Longer Sends the Invite Email by Default
⚠️ Check this one if you already call the endpoint. user-invite now creates the account without emailing anyone. Pass sendInvite: true to send the invite in the same call.
Smaller Things
  • Unconfigured personal booking slugs and disconnected host calendars return a clear error now instead of a server error.
  • The public Edge API reference now has field-level descriptions throughout.
Happy building! If you hit anything unexpected, email support@chilipiper.com.
See every submitted form field in your Concierge logs, mapped or not.
What's Changed and Why
Previously, any field not mapped in a router's Trigger was dropped before it reached the log. You could see the mapped fields, but if a field wasn't capturing data, the only way to find out why was to open the page source and compare it by hand.
What's Possible
  • See every field in the form payload, mapped and unmapped, in one place
  • Unmapped fields sit in a collapsible "Unmapped Form Fields" group below the mapped rows, with a count badge (collapsed by default)
  • Each unmapped row carries an Unmapped badge, with the field name, captured data, and data source still populated
  • Expand the group and use the "Go to Form Mapping" link to jump straight to the router's Trigger and map the field
  • Works the same on both the form-in-progress/abandoned log and the post-submission log
Things to Note
  • Applies to logging only - a field showing in the log doesn't mean it's captured; Routing Rules and the Create/Update Record node still require it to be mapped
  • No backfill, historical logs render as they always did
  • Third-party Form trigger only
  • Config params (id, assignee, accountId) and smart param slugs are stripped out so they don't add noise
Where to find it
- Concierge logs, on both the form-in-progress/abandoned view and the post-submission view.
The latest round of API and MCP updates is live, and it's a big one. Here's everything that's new.
New booking and user capabilities
  • Book over busy slots
    via the API. A dedicated endpoint now books over busy slots, and even outside working hours, for teams that book everything through their own internal tooling. It ships with its own token permission, so existing tokens can't touch it, and admins decide exactly which ones can. Handle with care - this one books right over tentative holds.
  • Send user invite emails in bulk
    . Add users to your organization without emailing them, then fire off the invites whenever you're ready, either to specific users or to everyone who hasn't been invited yet, in a single call. Useful for loading users into a sandbox now and inviting them later.
More monitoring and visibility
  • Meeting Prep briefs
    are now accessible with the API and MCP. Pull the AI-generated briefs programmatically instead of clicking into meetings one by one, review every brief in bulk, confirm they're being generated, and pipe the content into your own tooling.
  • Chat logs
    now tell you which rule matched. Each session includes both the rule ID and rule name that matched, and you can filter by rule ID.
Configuration management
  • Concierge triggers can now be set
    via the API and MCP. Turn a router's link or in-app button on or off, or change the webform, straight from MCP. Previously, you couldn't create or edit a router's triggers at all.
  • Web Experiences are now editable
    via the API and MCP. Following the recent release that let you create Web Experiences, you can now edit them too, and changes publish instantly.
A better MCP server for agents
  • Pre-built prompts
    for MCP clients. The MCP server ships ready-made prompt templates for common jobs, like: book a meeting, manage a distribution, query CRM, manage meetings. AI clients can list and pull these down, so agents use our tools correctly on the first try.
  • We made some adjustments so that tools are now discovered on demand (using the same endpoints), which reduces calls and uses a fraction of the tokens.
Oh, and
Editable API token permissions
. You no longer have to create a new token every time we ship a new endpoint, or when you need to add one you forgot. Just click to edit the permissions on the token you already have. The token value doesn't change, so nothing breaks
Happy building! If you hit anything unexpected, email support@chilipiper.com.
Now, you can use Chili Piper's Concierge router inside Fin for Sales (by Intercom), so the moment a visitor qualifies, they get a confirmed meeting dropped right into the chat. No forms, no email back-and-forth.
Before you start, make sure you have:
  • Access to Concierge, which handles the routing and booking
  • Access to Fin for Sales, Intercom's AI agent for inbound sales
What's Possible
  • Chat visitors can book without leaving Fin. A confirmed slot drops into the conversation the moment a visitor qualifies
  • Route every qualifying chat to the right rep automatically, by CRM ownership, territory, or round-robin
  • Offer only real availability - Chili Piper checks rep calendars in real time before showing slots, so there are no double-bookings and no stale holds
  • Confirm the meeting in-chat. The calendar invite appears inside the Fin conversation before the visitor leaves, with no redirect and no follow-up email
How It Works
Paste your Chili Piper Concierge router config into Fin's scheduling section once. From that point, every qualifying chat triggers the routing and booking flow automatically.
Learn more on the integration page.
You can now create, edit, and delete core Chili Piper configuration through the API and MCP, not just read it.
What's Possible
Full config management (create / edit / delete) is live for:
  • Scheduling links
  • Handoff routers
  • Distro routers
  • Concierge routers
  • Web Experiences
Meeting Types got deeper editing too: update the default location and conferencing details, associate Reminders, and set whether a Meeting Type is shared across the whole Workspace or with specific Teams.
Also Launched
  • Chat logs and conversation history
    , pull session and conversation history programmatically.
  • API request logs
    now let you filter by auth method and caller email, and MCP appears as a method option.
  • Paginated availability endpoint
    (slots-v2) for cleaner slot retrieval
There are a lot of possible configuration combinations across flows and journeys, so if you hit something unexpected, please email support@chilipiper.com.
Happy building!
A batch of quality-of-life improvements to our Web Expereinces are now live for everyone.
In the journey builder
  • View Logs
    , one click. A new 'View Logs' button takes you straight to that flow's logs, pre-filtered, matching what Distro and Concierge already have.
  • Dynamic tags
    - you can now insert dynamic tags in the 'Welcome Message' node, the 'Chat AI Fixed Greeting', and the 'Send a Message' node. Use 'Welcome Message' and 'Fixed Greeting' when the detail is known up front (via smart parameters or a returning guest), and 'Send a Message' once the detail's been collected earlier in the journey, such as via a S'end Data Field' node.
  • Assign To, tidied up
    . We renamed the option and removed two route-to choices that had no effect. You can now assign to an Individual, or to a Team or Team Member via Round Robin (through a Record Distribution).
  • Dev Mode has a home. Dev Mode is now a toggle under the ⋯ menu, and the Ctrl+Shift+D shortcut still works.
In the Scheduling and Offer widgets
  • Resume booking after reload (Scheduling experience). If a visitor submits their email and then refreshes the page, the widget picks up where they left off, straight to the calendar step.
  • Browser autofill (Scheduling and Offer experiences). Fields now support browser autofill so visitors can fill them from saved values in a click.
  • Email validation (Scheduling and Offer experiences). Malformed emails are caught inline with "This email is invalid" before anything's submitted, matching the chat lead form.
  • Dark backgrounds fixed (Scheduling and Offer experiences). Typed text in the email field is now legible on dark-background experiences.
Meeting Reminders can now be sent from the host or booker's own email address, not just the generic reminder@yourdomain.com. To the guest, the Reminder reads as a normal email from the person they're meeting, and replies go straight back to that person.
Before You Start
This requires a verified custom email domain. Once your domain is verified, the Send From options appears in the Reminder editor. For help setting up a custom email domain, check out this help article.
How It Works
  • In the reminder editor, go to Send From and choose Host, Booker, or No-reply email address.
  • If the host's email is on your verified custom domain, the reminder sends from their real address (e.g. nicolas@yourdomain.com), DKIM-signed by the domain.
  • If the host is on a different domain than the verified one, the reminder falls back to reminder@your-verified-domain rather than sending from an address the domain can't authenticate. Reply-to still points to the host, so replies reach them either way.
You can now keep your Hosts' and Reps' email addresses off the invites external guests receive.
Why it matters
  • Guests stay in your booking and support flow instead of emailing reps directly.
  • On multi-assignee, group, and round robin links, internal emails stay hidden from the guest.
What's changed and why
Normally, the calendar invite for a booked meeting is created by the Host's own Google or Microsoft calendar, so the host's email address is visible to every external guest. Guests can lift that address and email the rep directly instead of going through your intended booking or support flow. There's now a way to prevent that.
How it works
Select the new guest notification mode, Send an email confirmation, on a Team or Personal Meeting Type. When it's on:
  • External guests receive an email from Chili Piper with an ICS calendar attachment instead of a Google/Microsoft invite. The ICS lists only the external attendee - the host, booker, and assignees never appear in it.
  • Internal attendees still get a normal calendar event between themselves, with external guests removed from it.
  • You choose where guest replies go: Host, Booker, or No-reply. With No-reply, internal email addresses are also hidden on the booking confirmation page.
  • If you have a custom email domain configured, the email comes from No Reply <noreply@yourdomain.com>. Otherwise it comes from Chili Piper <notifications@chilipiper.com>.
Things to note
  • Applies to new bookings only, changing the mode doesn't affect already-scheduled meetings.
  • How the ICS renders (auto-add vs. manual import) depends on the guest's email client, so it's not identical to a native calendar invite.
  • The confirmation email template can't be customized (yet 😉).
Load More