Clearer Card-on-File & $0 Payment Handling for Calendars

We’ve improved Calendar Payments to clearly separate collecting a card on file from bookings where no payment is required.

✨ What’s changing?

Previously, businesses could configure a $0 payment amount when they wanted to collect a customer’s card details without charging them.

This created an unintended experience: if a booking became free — for example, after applying a 100% discount coupon — customers could still be asked to enter their card details and a $0 transaction could be processed.

We’re separating these two use cases with a dedicated “Collect Card on File” option in Calendar Payment settings.

💳 Collect Card on File

When Collect Card on File is enabled:

  • Customers will be asked to provide their card details during booking
  • Their card will be securely saved for future use
  • They will not be charged while booking the appointment
  • No payment transaction will be created during booking

This gives businesses an explicit way to collect a card without requiring an upfront payment.

💰 $0 and free bookings

When Charge upfront is enabled, payment collection will now depend on the final amount due.

  • Final amount > $0 → Collect payment details and process the payment normally
  • Configured amount = $0 → Skip card collection and payment entirely
  • Coupon reduces the amount to $0 → Skip card collection and payment entirely
  • Coupon leaves an amount > $0 → Collect the discounted amount normally

This means customers making a genuinely free booking will no longer be asked for unnecessary payment details or go through a $0 transaction.

image

Clearer Card-on-File & $0 Payment Handling for Calendars

We’ve improved Calendar Payments to clearly separate collecting a card on file from bookings where no payment is required.

✨ What’s changing?

Previously, businesses could configure a $0 payment amount when they wanted to collect a customer’s card details without charging them.

This created an unintended experience: if a booking became free — for example, after applying a 100% discount coupon — customers could still be asked to enter their card details and a $0 transaction could be processed.

We’re separating these two use cases with a dedicated “Collect Card on File” option in Calendar Payment settings.

💳 Collect Card on File

When Collect Card on File is enabled:

  • Customers will be asked to provide their card details during booking
  • Their card will be securely saved for future use
  • They will not be charged while booking the appointment
  • No payment transaction will be created during booking

This gives businesses an explicit way to collect a card without requiring an upfront payment.

💰 $0 and free bookings

When Charge upfront is enabled, payment collection will now depend on the final amount due.

  • Final amount > $0 → Collect payment details and process the payment normally
  • Configured amount = $0 → Skip card collection and payment entirely
  • Coupon reduces the amount to $0 → Skip card collection and payment entirely
  • Coupon leaves an amount > $0 → Collect the discounted amount normally

This means customers making a genuinely free booking will no longer be asked for unnecessary payment details or go through a $0 transaction.

image

Clearer Card-on-File & $0 Payment Handling for Calendars

We’ve improved Calendar Payments to clearly separate collecting a card on file from bookings where no payment is required.

✨ What’s changing?

Previously, businesses could configure a $0 payment amount when they wanted to collect a customer’s card details without charging them.

This created an unintended experience: if a booking became free — for example, after applying a 100% discount coupon — customers could still be asked to enter their card details and a $0 transaction could be processed.

We’re separating these two use cases with a dedicated “Collect Card on File” option in Calendar Payment settings.

💳 Collect Card on File

When Collect Card on File is enabled:

  • Customers will be asked to provide their card details during booking
  • Their card will be securely saved for future use
  • They will not be charged while booking the appointment
  • No payment transaction will be created during booking

This gives businesses an explicit way to collect a card without requiring an upfront payment.

💰 $0 and free bookings

When Charge upfront is enabled, payment collection will now depend on the final amount due.

  • Final amount > $0 → Collect payment details and process the payment normally
  • Configured amount = $0 → Skip card collection and payment entirely
  • Coupon reduces the amount to $0 → Skip card collection and payment entirely
  • Coupon leaves an amount > $0 → Collect the discounted amount normally

This means customers making a genuinely free booking will no longer be asked for unnecessary payment details or go through a $0 transaction.

image

Email Events: Message ID Now Available in the Dynamic Picker

Overview

The Email Events trigger fires on opens and clicks, but the event never carried anything that identified which email produced it. If you pushed those events to an external system with the Send Webhook action, there was no Message ID variable to pick.

What's new

Email Events now carries a unique Message ID, and you can select it as a custom value inside the Send Webhook body.

How it works

Open the Send Webhook action in a workflow that starts with Email Events, then pick Message ID from the custom value picker when you build the payload. Every open and click on the same email sends the same ID. A different email sends a different one. The ID rides along with the event itself, so an open that arrives late still points back to the email that generated it.

Why this matters

Teams feeding email engagement into an external dashboard had no reliable way to dedupe. Email Opened fires on every open, including repeat opens of the same message, and resolving the email through the API by "most recently sent" got the wrong answer whenever a contact opened something older.

Simple example

A marketing agency sends two campaign emails in the same week and pipes open and click events into its own reporting dashboard. With Message ID in the webhook body, each open lands against the specific email it came from, and the same contact opening one email four times collapses into a single engagement record instead of four.

Additional Notes

  • Applies to both Email Opened and Email Clicked on the Email Events trigger.
  • The ID is stable per message. Repeat opens send the same value every time.

Preview

image

Fixed: 'Create/Update Record' Picklists Now Accept Dynamic Values

Overview

Dropdown fields in the Create Record and Update Record actions, including the associated record versions, stopped offering dynamic values. If you had saved something like {{<a href="http://contact.day" rel="ugc nofollow noopener noreferrer" target="blank”>contact.day1}} in a dropdown, the field opened empty with nothing selected. There was no way to enter a new merge tag either.

What's new

Single-select dropdown fields now have the Standard and Dynamic toggle, the same one you already use in Update Contact Field.

What's changed

Standard mode gives you the searchable picklist, image options included. Dynamic mode gives you a text input with the custom value picker, so you can drop in a merge tag from a trigger, a formatter, or an inbound webhook. Saved values that don't match a picklist option now open in Dynamic mode on their own, so existing configs render the way you set them up. Switching between the two modes clears the field, which stops a leftover value from the other mode saving without you noticing.

Additional Notes

  • Covers Create Record, Update Record, and both associated record actions, in contact-based and custom object workflows.
  • Multi-select fields were never affected. Nothing changed for them.
  • Update Contact Field already had this toggle and is unchanged.
  • Flipping the mode wipes the current value on purpose. Re-enter it after you switch.