Skip to main content
You can create a React-based bulk action extension for your app on the 2026.09 version of the developer platform. Bulk actions let users perform operations on selected records directly from CRM object index pages. When a user selects records and triggers your action, HubSpot renders your custom React component as a modal or panel, with the selected record IDs and object type available in the extension context. This guide walks you through how to build a bulk action component using React and how to upload and preview it in HubSpot. Before you begin, follow the quickstart guide to create your first app on the latest version of the developer platform.

Prerequisites

  • Ensure you’ve installed the latest beta version of the HubSpot CLI.
  • If you haven’t done so yet, create a new app.
  • In your project’s hsproject.json file, set platformVersion to 2026.09.

Create a bulk action

1

Add a bulk action component to your project

To add a new bulk action component to an existing project:
  1. Use the terminal to navigate into your local project directory, then run the following command:
  1. When prompted to select a component to add, select Bulk action.
Select-bulk-actionsA new actions/ directory will be created in the project’s src/app/ directory. The actions/ directory will contain:
  • A JSON configuration file (*-hsmeta.json)
  • A React component file (.tsx)
  • A package.json file
2

Upload to HubSpot

To upload your bulk action to HubSpot:
  1. Run hs project install-deps from within your local project directory to install necessary dependencies. This will create a package-lock.json file, which speeds up the build of the uploaded bulk action extension and ensures that any dependencies in your local development environment and production match.
  2. Run hs project upload.
  3. After the project finishes deploying, open the project in HubSpot by running hs project open. Alternatively, in HubSpot you can navigate to Development > Projects, then click the name of your project.
  4. Your bulk action component should now be listed on the details page.
Uploaded-bulk-action-component-on-project-details-page

View the bulk action in HubSpot

To verify the bulk action is working correctly:
  1. In your HubSpot account, navigate to a CRM object index page. For example, navigate to CRM > Contacts.
  2. Select the checkboxes of records for which to test bulk actions.
  3. At the top of the table, click More.
  4. Your bulk actions will be listed under your app’s name at the bottom of the menu.
Bulk-action-menu-options-on-index-page
  1. After clicking on your action’s name, it will open as either a modal or panel (depending on how you configured it in the hsmeta.json file).
Bulk-action-panel You can now continue to build out your bulk action as needed. You’ll use the UI extensions SDK to add functionality and visual elements to your component. Note that all the existing limitations around building UI extensions apply to building a bulk action.
  • Use hubspot.fetch() to leverage your backend to retrieve and act on data. Learn more about fetching data in UI extensions.
  • Check out the reference documentation on standard components for how to use React components when building your extension, or use the component in the Figma Design Kit.
  • Use the hs project dev command to iteratively build out your bulk action and preview your changes locally.
Please note: the local development server will only pick up changes saved to the front-end React file. If you update the *-hsmeta.json or package.json files, you’ll need to stop the server, upload your changes, then start the server again.

Bulk action configuration

Each bulk action requires a *-hsmeta.json configuration file. Include the following properties:
Last modified on September 28, 2026