Changelog

Follow up on the latest improvements and updates.

RSS

We’re excited to introduce Cards on File for Contacts 💳 on the mobile app. You can now securely save and manage customer cards directly from a contact’s Payments section.
🚀
What’s new
  • Save cards directly from contacts
    : Add and store a customer’s card within their contact profile for future transactions.
  • Remove cards easily
    : Manage stored cards by removing them with a simple swipe action when they are no longer needed.
👷‍♂️
How to use this feature
Add a card on file
  1. Open the mobile app and navigate to the Contacts section.
  2. Select a Contact.
  3. Go to the Transactions tab.
  4. Tap the floating action button (+).
  5. Select Manage Cards on File.
  6. Enter the card details and save the card to the contact.
Use a saved card for payment
  • When creating a transaction, invoice, estimate, or in-person charge linked to the contact, the saved cards will appear as available payment methods.
Remove a saved card
  1. Open Manage Cards on File for the contact.
  2. Swipe left on the card you want to remove.
  3. Tap Remove.
  4. Confirm the action when prompted.
How this helps your business
  • Speed up checkout
    : Charge returning customers without re-entering their card details.
  • Centralise payment methods
    : Keep customer payment details organised directly within the contact record.
  • Improve customer experience
    : Make repeat payments smoother and faster.
image
image (1)
image (2)
image (3)
We’re excited to introduce Payment Plans for Estimates 💳. You can now offer customers more flexibility by splitting estimate payments into scheduled installments, making it easier to close larger deals and give customers clearer payment expectations from the start.
🚀
What’s new
  • Add payment schedules to estimates
    : Break the total estimate amount into multiple payments instead of requiring the full amount upfront.
  • Deposit-based estimates
    : Configure the first payment as a deposit that is collected when the estimate is accepted.
  • Flexible scheduling options
    : Set subsequent payments using custom due dates or regular intervals (for example weekly).
  • Percentage-based plans
    : Use the percentage toggle to easily split payments as portions of the total estimate.
👷‍♂️
How to use this feature
Create a payment schedule for an estimate
  1. Navigate to the Estimates section and create a New Estimate.
  2. Add products or services to the estimate.
  3. Navigate to the review section.
  4. Select the option to configure a Payment Plan.
Configure the first payment
  1. Choose when the first payment should occur:
  • Upon Estimate Acceptance (used as the deposit), or
  • Custom Date
  1. Enter the payment amount or percentage for the first payment.
Set up the remaining payments
  1. Choose how subsequent payments should be scheduled:
  • Custom Date for manual due dates, or
  • Regular interval (e.g., weekly).
  1. Add additional payments using Add Payment and define the amount and schedule.
Review and save
  1. Check the Total and Remaining percentages to ensure the full estimate amount is covered.
  2. Tap Save to add the schedule to the estimate.
How this helps your business
  • Increase estimate approvals
    : Flexible payment options make it easier for customers to commit.
  • Support larger deals
    : Break bigger purchases into manageable instalments.
  • Improve transparency
    : Customers see exactly how and when payments will occur.
  • Reduce negotiation friction
    : Offer built-in payment flexibility directly in the estimate.
image
image (1)
image (2)
We’re excited to share an upgrade that keeps you in flow ⚡: you can now access a dedicated Payments tab directly inside Contacts and Opportunities on the mobile app. Create invoices/estimates, charge customers, manage cards on file, and review payment activity — all without leaving the record you’re working on.
🚀
What’s new
  • Payments tab inside Contacts
    : A new Payments tab on the Contact detail screen to view and manage everything tied to that contact.
  • Quick actions (Contacts)
    : Charge Now (POS), New Invoice, New Estimate, Manage Cards on File — right from the contact.
  • More customer context (Contacts)
    : See Customer Lifetime Value and Customer Start Date up front.
  • Payments tab inside Opportunities
    : A new Payments tab on the Opportunity detail screen to track activity linked to the opportunity.
  • Quick actions (Opportunities)
    : Create a New Invoice or New Estimate directly from the opportunity.
  • Easy filtering
    : Use filter chips to switch between payment types (e.g., Transactions / Invoices / Estimates / Subscriptions where applicable).
👷‍♂️
How to use this feature
From a Contact
  1. Open a Contact → tap the Payments tab.
  2. Tap Actions → choose Charge Now, New Invoice, New Estimate, or Manage Cards on File.
  3. Use the filter chips to browse Transactions / Invoices / Estimates / Subscriptions.
From an Opportunity
  1. Open an Opportunity → tap the Payments tab.
  2. Tap New Invoice or New Estimate (auto-linked to the opportunity).
  3. Review linked payment activity and statuses right inside the tab.
image
image (1)
image (2)
image (3)
We’re excited to introduce a new way to enhance your invoices and estimates with supporting files. 📎 You can now attach supporting files from mobile while creating invoices or estimates using Media Storage, your camera, gallery, or local files. This makes it easier to provide context, share documentation, and deliver more professional payment requests.
🚀
What’s new
  • Attach files to invoices and estimates: Add supporting documents directly while creating or editing invoices and estimates from the mobile app.
  • Multiple file sources: Choose attachments from Media Storage, your camera, your gallery, or local files.
  • Streamlined workflow: Add attachments without leaving your current flow or switching between tools.
👷‍♂️ How to use this feature
  1. Navigate to the Invoices or Estimates section and create a New Invoice or Estimate.
  2. Scroll to the Attachments section.
  3. Tap Add Attachment.
  4. Choose your file source:
  • 📁 Media Storage
  • 📷 Camera
  • 🖼️ Gallery
  • 📄 Files (local device storage)
  1. Select or capture your file (PNG, CSV, or PDF).
  2. The file will appear in the Attachments section with its file type and name.
Manage attachments before sending
  1. Tap an attachment to open the options overlay.
  2. Select Delete to remove it from the draft if needed.
  3. Review all attachments before sending your invoice or estimate.
⚠️ Limits to keep in mind
  • Up to 10 files per invoice or estimate
  • Total attachment size limit: 20 MB per document
image
image (1)
image (2)
image (3)
image (3)
image (4)
We’re excited to announce that the
Service Location Public API
is now live 🎉
This release enables developers and partners to programmatically create, manage, and retrieve service locations—unlocking deeper integrations and flexibility in how service locations are configured and used in scheduling.
---
📦 What’s Included
The Service Location Public API supports the complete lifecycle of service location management:
1. Get All Service Locations:
Retrieve all service locations configured for a business, including their details and types.
2. Create Service Location:
Create new service locations with details like name, address, contact info, and location type (including customer-provided locations).
3. Get Service Location by ID:
Retrieve detailed information about a specific service location, including its configuration and type.
4. Update Service Location:
Update existing service locations, including name, address, and location type (e.g., physical location or Ask Booker).
5. Delete Service Location:
Delete a service location that is no longer needed.
---
💡 Why This Matters
With the Service Location Public API, developers can:
  • Build
    flexible booking experiences
    with different location types, including customer-provided addresses
  • Support
    mobile and on-site service
    businesses
  • Keep service locations in sync with external systems
  • Automate creation
    and management of service locations at scale
This release makes service location management more flexible, extensible, and scalable for our ecosystem.
We’ve introduced a
new location type
that allows customers to
enter their own service address during booking
.
Businesses that provide services at
customer locations
— such as
mobile services, repairs, consultations, or on-site appointments
— can now configure a location where the booker provides the
service address at the time of booking
.
This keeps the booking flow
simple
while allowing businesses to collect the
exact address for each appointment
.
---
✅ What’s New
  • Businesses can now create an
    “Ask the Booker” location
    in Services
  • Customers will be prompted to enter their
    service address during booking
  • The
    address is saved with the appointment
  • The rest of the booking flow remains unchanged
---
🔐 How It Works
  • Enable the option to
    let bookers enter their own service address
    while creating or editing a location
  • When selected, customers are asked to enter
    where the service will take place
  • The address is
    stored with the appointment
    and used in details and notifications
  • Availability, services, and pricing continue to follow the
    location configuration
---
🛠 How to Use
  1. Go to
    Calendar Settings → Services (v2) → Locations
  2. Create a new location or edit an existing one
  3. Enable
    “Let bookers enter their own service address”
  4. Configure the location name and other details
  5. Assign the location in
    Staff Availability
    as needed
  6. During booking, customers will be asked to enter their
    service address
---
🎯 Why This Matters
  • Supports
    on-site and mobile service businesses
  • Enables collecting
    accurate addresses per appointment
  • Keeps the booking experience
    simple and consistent
  • Adds more
    flexibility in configuring service locations
image
image
image
image
image
What’s new?
You can now change the Default Path in Advanced Builder workflows. In workflows with multiple parallel branches, this lets you choose which branch contacts enter by default when they come from another workflow or when you run a workflow test.
How it works
The root node is now labeled Default Path. On the first action in each branch, you can click the branch icon to set that branch as the default path. Once selected, workflow tests and contacts entering from other workflows will follow that branch.
How to use it
  • Open a workflow with multiple parallel branches in Advanced Builder.
  • Click the branch icon on the first action of the branch you want to use.
  • Set that branch as the Default Path and run your test or enrollment.
Why we built it
Testing and configuring workflows with parallel branches was harder when only one root path handled workflow tests and cross-workflow entries. This update gives you more control, makes branch-level testing easier, and helps you validate each path without rearranging your workflow.
Simple example
When testing a workflow with multiple reminder branches, you can set one branch as the Default Path so your test contact enters that specific branch first.
Additional Notes
  • The root node is now called Default Path in Advanced Builder workflows with multiple parallel branches.
  • You can set the default path from the first action in any branch using the branch icon, with tooltips to explain the behavior.
  • The default path is used for workflow tests and for contacts entering from another workflow.
  • A solid trigger connector means the branch is the Default Path. A dashed trigger connector means the branch is reached through a Go To connector and is not the default path.
Preview
Kapture 2026-03-24 at 01
We've made it easier to understand why an A2P campaign was rejected and what the user needs to do to fix it.
What's new :
When a campaign submission is rejected, users will now see a "View required fixes →" link next to each rejection reason.
Screenshot 2026-03-23 at 7
Clicking it opens a detailed modal that breaks down the issue into four clear fields:
  • Error code – the specific code returned by the carriers.
  • Rejection category – a human-readable label for the type of violation (e.g., Invalid website URL).
  • What it means – a concise explanation of why the submission failed.
  • Correction needed – the exact action required before resubmitting.
Screenshot 2026-03-23 at 7
Previously, rejection reasons were displayed as short descriptions with no additional context, leaving users confused about the precise cause of rejection and the required next steps.
Why it matters :
This change shares precise feedback with the user so they can fix issues faster with lesser assistance required from customer support and consequently resubmit with confidence.
Overview
Based on valuable customer feedback on the new Contact Page design, we are introducing an improved way to access opportunities. This update focuses on better visibility, faster access, and a more intuitive layout while we continue building deeper customization capabilities for the contact page.
What’s New
  • Opportunities moved to the right panel
    as a dedicated standalone tab
  • Positioned
    below Associations
    for improved discoverability
  • Decoupled from Associations (view-only change) — no impact on data structure or functionality
  • Opportunities are
    temporarily accessible in two places
    : Under
    actions
    & on the
    right panel
How It Works
  • Navigate to a contact record -> On the
    right-hand panel
    , you’ll now see a dedicated
    opportunities tab
    below associations.
  • This tab provides a clear, focused view of all opportunities linked to the contact
  • For the transition period, you can still access opportunities via the
    actions menu
    , ensuring no disruption to the current flow
Screenshot 2026-03-23 at 10
What’s Next
  • By
    Apr 08, 2026
    , opportunities will be
    removed from the actions tab
    and will live exclusively on the
    right panel
  • We are actively working on
    contact page customization
    , which will allow you the admins to reposition the opportunities tab and customize contact layout based on their preferences
Overview
In the Contact Changed trigger, the Website contact field was not available as a selectable field. This prevented users from starting automations when a contact’s website was updated and forced workarounds outside the trigger.
What’s new
The Website field is now supported in the Contact Changed trigger.
What’s changed
You can now use the Website contact field with the operators has changed and has changed to to trigger workflows when that value is updated.
Additional Notes
  • This fix applies to the Contact Changed trigger only.
  • The team is also actively working on improving support for other missing fields and operators.
Load More