Sidekick Strategies
Events
Book a Free CallContact Us
HubSpot Updates

App Actions for UI Extensions: Bulk CRM Operations Are Here

September 29, 2026

What This Update Actually Is

App Actions for UI Extensions adds a new extension point to HubSpot's developer platform. It lets developers create a custom bulk action that appears in the action toolbar when a user selects one or more records on a CRM index page.

When that action is triggered, HubSpot renders your custom React component as either a modal or a slide-in panel. Your component receives the selected record IDs and object type through the extension context. From there, you can do whatever your backend supports.

This runs on the 2026.09 version of HubSpot's developer platform. You'll need the latest beta version of the HubSpot CLI and your hsproject.json file set to platformVersion: 2026.09 before you build. It's currently in public beta and available across all hubs and tiers.

Why HubSpot Shipped This

Here's the honest problem. CRM index pages are where humans spend a lot of their day. They're filtering contacts, reviewing company lists, scanning deal pipelines. But acting on a group of records has always required awkward workarounds: bulk property edits, exports to spreadsheets, or clicking into each record one at a time.

Custom apps already let developers build sidebar cards and CRM record panels. But those tools live inside a single record. There was no clean way to take a custom action across a selection of records without leaving HubSpot or writing a completely separate integration.

App Actions closes that gap. HubSpot is extending its UI Extensions SDK so developers can build directly into the list-page workflow humans already use every day, right where the work actually happens.

How to Use It Step by Step

These steps follow HubSpot's official documentation at developers.hubspot.com/docs/apps/developer-platform/add-features/ui-extensions/extension-points/create-a-bulk-action. Start here:

  1. Install the latest beta version of the HubSpot CLI and confirm your existing app project is set up on the developer platform.
  2. Open your project's hsproject.json file and set platformVersion to 2026.09. This is required before any bulk action features will work.
  3. Navigate into your local project directory in the terminal and run: hs project add. When prompted, select Bulk action.
  4. HubSpot generates an actions/ directory inside src/app/ containing three files: a JSON config file (*-hsmeta.json), a React component file (.tsx), and a package.json.
  5. Edit the *-hsmeta.json file to configure your bulk action. Set the label (what humans see in the toolbar), objectTypes (which CRM objects it appears on, such as contacts or companies), displayMode (PANEL or MODAL), and icon.
  6. Build your React component in the .tsx file. Use hubspot.fetch() to call your backend and act on the selected record IDs passed in through the extension context.
  7. Run hs project install-deps to install dependencies, then hs project upload to deploy. Use hs project dev to iterate locally during development.
  8. Verify it works: go to a CRM index page (like CRM > Contacts), select records, click More in the toolbar, and find your action listed under your app name.

One important caveat: if you update the *-hsmeta.json or package.json files during local development, you'll need to stop the local server, upload the changes, then restart. The local dev server only hot-reloads changes to the React component file itself.

What It Touches in Your HubSpot Strategy

This update ripples into more areas than it might look like on the surface. Let's walk through what actually changes.

CRM Record Index Pages Across All Objects

You can configure bulk actions to appear on any CRM object type: contacts, companies, deals, tickets, or custom objects. The objectTypes array in your config file controls this. One app can support multiple object types.

That means a single well-built app could power a bulk action on your contacts list, your deals pipeline view, and your ticket queue, all from one codebase.

Key Takeaway

Bulk actions work on any CRM object type, including custom objects. One app can serve multiple object types by listing them all in the objectTypes array of the *-hsmeta.json config file.

Custom Apps and the UI Extensions SDK

All existing UI Extensions SDK components and limitations carry over. If you've already built sidebar cards or CRM record panels, you know the toolset. Bulk actions use the same React component structure and the same hubspot.fetch() pattern for backend calls.

This also means bulk actions fit naturally into the same developer platform project where you've already built other extensions. You're not starting a new project from scratch.

Workflows, Operations, and Internal Processes

Think about what your RevOps team does manually today. Bulk-reassigning records. Triggering enrichment on a set of leads. Sending selected contacts to an external system. Flagging a group of deals for review. Any of those are candidates for a bulk action.

If you're already using secure API credentials to connect external systems, like the pattern covered in HubSpot Account Service Keys, bulk actions give you a clean front-end trigger point for those backend calls. The selected record IDs land in your component context and you pass them straight to your API.

Key Takeaway

Bulk actions are a front-end trigger, not a workflow replacement. They're most powerful when paired with a solid backend API that can process multiple record IDs at once. Plan that architecture before you build the UI.

Display Mode: Modal vs. Panel

The displayMode setting in your config file determines how the component renders. PANEL slides in from the right side of the screen. MODAL opens as a centered dialog box. Choose based on how much context or interaction the action needs.

A quick confirmation or status update fits a modal. A multi-step process with form fields or data preview fits a panel. Get this right in your config before you build the component, because changing it later requires a re-upload.

Who Should Care Most

This update is squarely for teams that have developers building on HubSpot's platform. If nobody at your company writes React or uses the HubSpot CLI, this update doesn't unlock anything for you today. But it's worth knowing it exists so you can factor it into future app development decisions.

The humans who'll get the most out of this, right now:

  • HubSpot app developers who already build UI Extensions and want to add list-page functionality to existing apps.
  • RevOps leaders at mid-market and enterprise companies whose teams do high-volume, repetitive multi-record operations inside HubSpot.
  • HubSpot Solutions Partners building apps for clients who need custom CRM workflows that native automation can't cover.
  • Operations teams with external systems (ERPs, data platforms, custom databases) that need a clean trigger point from within HubSpot without requiring a full workflow.

If you're a business owner without a developer on staff, bookmark this one. It's a signal of where HubSpot's extensibility is heading, and it's worth discussing with any agency or dev partner you work with.

George's Take

I've been inside a lot of HubSpot portals where the team has a solid CRM setup but then loses hours every week to repetitive manual work on list pages. They're selecting records, exporting to a spreadsheet, doing something in another tool, and importing back. App Actions is HubSpot saying: stop leaving the platform to do that work. Build the operation right into the index page where your humans already are. That's not a small thing. That's a fundamental shift in what a custom HubSpot app can actually do, and the teams that build smart bulk actions now are going to have a real operational edge.

“The best RevOps tools don't add steps, they remove them. App Actions is HubSpot finally bringing the custom operation to where humans already live in the platform.”
— George B. Thomas

If you're thinking about where this fits in HubSpot's bigger platform direction, it's worth reading through the full picture of HubSpot's agentic platform. Bulk actions are one more piece of a platform that's getting much more serious about letting developers build experiences that feel native to HubSpot.

Developers who are already building programmatically on HubSpot, like those using the Knowledge Base API for programmatic article management, will find that App Actions fits naturally into the same developer platform mindset: build it once, let it work every time.

If you want help scoping what a bulk action could actually solve in your portal, or if you need a developer partner who knows HubSpot's UI Extensions platform, let's talk. Book a strategy call with the Sidekick team and we'll map out what's worth building first.

Frequently Asked Questions

What are App Actions for HubSpot UI Extensions?

App Actions are a new UI Extensions extension point that lets developers build custom React components triggered from CRM record index pages. When a user selects one or more records and triggers the action, HubSpot renders the component as a modal or side panel, passing the selected record IDs and object type into the extension context.

Which HubSpot hubs and tiers get App Actions for UI Extensions?

App Actions for UI Extensions are available to all HubSpot hubs and all tiers. The feature is currently in public beta as of September 2026 and requires the 2026.09 version of the HubSpot developer platform along with the latest beta version of the HubSpot CLI.

What CRM objects can App Actions target?

You can configure a bulk action to appear on any CRM object type, including contacts, companies, deals, tickets, and custom objects. The objectTypes array in your *-hsmeta.json configuration file controls which object index pages display your action. A single app can target multiple object types at once.

What's the difference between PANEL and MODAL display modes?

PANEL renders your React component as a slide-in side panel on the right side of the screen. MODAL renders it as a centered dialog box. Use PANEL for multi-step interactions or data previews, and MODAL for quick confirmations or simple inputs. You set this in the displayMode field of your *-hsmeta.json config file.

Do I need a new HubSpot app project to build App Actions?

No. You can add a bulk action component to an existing HubSpot developer platform project by running hs project add and selecting Bulk action when prompted. HubSpot creates the required actions/ directory with a config file, React component, and package.json inside your existing project structure.

What can a HubSpot bulk action actually do?

A bulk action can do anything your backend supports. Common use cases include mass reassignment of records, sending selected records to external systems, triggering data enrichment, updating multiple records with a custom form, or flagging groups of deals for review. The selected record IDs are passed into your React component and you call your backend via hubspot.fetch().

Comments

Join the conversation. Share what resonated, ask questions, or add your perspective.

Leave a Comment

We'd love to hear your thoughts. Your comment will appear after review.

Never shared publicly.

0/2,000

Ready To Talk?

Need Help Making Sense of HubSpot?

Sidekick Strategies helps your humans get the most out of every HubSpot update, feature, and tool. Let's make your portal work harder for you.