Standard Builder: Now with Keyboard Navigation & Shortcuts!
What’s new?
We added keyboard shortcuts to the standard workflow builder so you can build, edit, and navigate workflows faster with the keyboard. This includes shortcuts for node movement, selection, copy and paste, delete actions, zoom controls, panel access, and saving.
How it works
Inside the standard builder, shortcuts are grouped into 5 areas: Essential, Edit, View, Navigation, and Tools. Depending on the action, shortcuts work on the selected node, all actions from the selected node onward, or the current builder view.
How to use it
- Open a workflow in the standard builder.
- Select a node when needed, then use the matching shortcut.
- Save your workflow and keep building without switching back to clicks.
Why we built it
Workflow building often involves the same actions again and again. These shortcuts cut down on repetitive clicks, speed up edits, and make it easier to work through larger workflows.
List of keyboard shortcuts
Edit
- Move Selected Node(s) — ⌘ + X / Ctrl + X
- Copy Selected Node(s) — ⌘ + C / Ctrl + C
- Paste Node(s) — ⌘ + V / Ctrl + V
- Copy All Actions From Selected Node Onward — ⌘ + Shift + C / Ctrl + Shift + C
- Move All Actions From Selected Node Onward — ⌘ + Shift + X / Ctrl + Shift + X
View
- Zoom in — +
- Zoom out — –
- Zoom to 100% — 0
- Fit View — 1
Navigation
- Select All Nodes — ⌘ + A / Ctrl + A
- Select All Actions — ⌘ + Shift + A / Ctrl + Shift + A
- Select All Triggers — ⌘ + ⌥ + A / Ctrl + Alt + A
- Move to Next Node — ↓
- Move to Previous Node — ↑
- Move to Right Sibling Node — →
- Move to Left Sibling Node — ←
- Select Upstream Nodes — Shift + ↑
- Select Downstream Nodes — Shift + ↓
Tools
- Delete Selected Node(s) — Del
- Delete All Actions From Selected Node Onward — ⌘ + Del / Ctrl + Del
- Open Trigger Panel — Shift + Tab
- Open Action Panel — Tab
- Save Workflow — ⌘ + S / Ctrl + S
Additional notes
- Some shortcuts only work after you select a node first.
- Some shortcuts appear in more than one section because they are relevant in multiple workflow tasks.
Example of Keyboard shortcuts in use with key bindings

Service Location Public API is now live 🎉
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.
Docs: <a href="https://marketplace.gohighlevel.com/docs/ghl/calendars/get-service-locations" rel="ugc nofollow noopener noreferrer" target="blank”>https://marketplace.gohighlevel.com/docs/ghl/calendars/get-service-locations
2. Create Service Location: Create new service locations with details like name, address, contact info, and location type (including customer-provided locations).
Docs: <a href="https://marketplace.gohighlevel.com/docs/ghl/calendars/create-service-location" rel="ugc nofollow noopener noreferrer" target="blank”>https://marketplace.gohighlevel.com/docs/ghl/calendars/create-service-location
3. Get Service Location by ID: Retrieve detailed information about a specific service location, including its configuration and type.
Docs: <a href="https://marketplace.gohighlevel.com/docs/ghl/calendars/get-service-location-by-id" rel="ugc nofollow noopener noreferrer" target="blank”>https://marketplace.gohighlevel.com/docs/ghl/calendars/get-service-location-by-id
4. Update Service Location: Update existing service locations, including name, address, and location type (e.g., physical location or Ask Booker).
Docs: <a href="https://marketplace.gohighlevel.com/docs/ghl/calendars/update-service-location" rel="ugc nofollow noopener noreferrer" target="blank”>https://marketplace.gohighlevel.com/docs/ghl/calendars/update-service-location
5. Delete Service Location: Delete a service location that is no longer needed.
Docs: https://marketplace.gohighlevel.com/docs/ghl/calendars/delete-service-location
—
💡 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.
Ask the Booker Location for Services (v2)
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
- Go to Calendar Settings → Services (v2) → Locations
- Create a new location or edit an existing one
- Enable “Let bookers enter their own service address”
- Configure the location name and other details
- Assign the location in Staff Availability as needed
- 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





Advanced Builder: Set Default Path for Workflow Branches
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

Advanced Builder: Set Default Path for Workflow Branches
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

