Product documentation

GroOps for HubSpot

Installation, Company grouping, matching rules, record review, bulk editing, merging, parent-child associations, optional Google Places enrichment and location discovery, automatic merge rules, workflow automation, billing, data processing, troubleshooting, and support.

Current production documentation Last updated October 3, 2026 Atlantic Ops
Jump to a section
  1. Product overview
  2. Requirements and installation
  3. Plans and billing
  4. Company Groups
  5. Group matching
  6. Review, edit, merge, and associate
  7. Optional Google Places setup
  8. Google enrichment in Groups
  9. Google Places location search
  10. Google address workflow action
  11. Automatic merge
  12. HubSpot permissions
  13. Data usage and security
  14. Uninstalling GroOps
  15. Troubleshooting
  16. Frequently asked questions
  17. Support
01 — Overview

Product overview

GroOps is a HubSpot-native Company data management application for finding related Company records, reviewing them together, correcting data, merging duplicates, building parent-child structures, and optionally using Google Places to discover or enrich physical locations.

HubSpot remains the system of record for Company records and Company associations. GroOps provides an operational workspace and automation layer that reads Company data, presents related records together, and writes approved changes back to HubSpot.

Current production capabilities

Groups

Find and review related Companies

Group Company records by a HubSpot Company property, review matching records together, and use exact or configurable similarity matching for supported text properties.

Actions

Clean up records in place

Edit individual records, bulk edit selected records, merge selected Companies into a chosen primary record, and associate selected Companies to a parent Company.

Google Places

Optional location data

Connect your own Google Places API key for Company enrichment, external location search, parent discovery, and the Google address workflow action.

Automation

Exact-match automatic merging

Build record-retention and exact-match criteria, optionally allow blank values during matching, preview duplicate groups without changing data, run the saved rule manually, and schedule future daily or weekly runs.

GroOps App Page
02 — Setup

Requirements and installation

Requirements

  • A HubSpot account where the GroOps Marketplace app can be installed.
  • A HubSpot user permitted to authorize Marketplace applications.
  • Company records available in the connected HubSpot account.
  • Authorization for GroOps to read Company records, update Company records, and read the Company schema.
  • An active GroOps entitlement for paid actions where indicated in the application.
  • A Google Places API key only if you want to use the optional Google-powered features.

Install GroOps

  1. Start the GroOps installation from Atlantic Ops or the HubSpot App Marketplace.
  2. Select the HubSpot account where GroOps should be installed.
  3. Review the requested OAuth permissions.
  4. Approve the installation.
  5. Open GroOps from HubSpot and confirm the Groups page loads.
  6. Open GroOps settings to review Billing, Google Places, and Rules.
GroOps can write Company data

GroOps actions use the permissions granted to the installed Marketplace application. Only users authorized by your organization to change Company data should be given operational access to GroOps.

GroOps oAuth Connection
03 — Billing

Plans and billing

GroOps billing is based on the number of Company records in the connected HubSpot account. All paid plans include the full GroOps feature set.

Plan Company records Monthly Annual
Free 5 groups $0 USD $0 USD
Starter 0–25,000 Companies $49 USD / month $490 USD / year
Growth 25,001–100,000 Companies $99 USD / month $990 USD / year
Scale 100,001+ Companies $249 USD / month $2,490 USD / year

Annual billing is priced at ten months of the corresponding monthly plan. Subscription checkout and billing management are handled through Stripe.

Google usage is separate

If you connect Google Places, Google API usage is billed directly to your Google Cloud account. It does not change your GroOps subscription price.

04 — Groups

Company Groups

The Groups page organizes HubSpot Company records by a selected Company property so related records can be reviewed together.

  1. Open GroOps and select Groups.
  2. Choose the Company property in Group by.
  3. Select Build groups to scan Company records.
  4. Review the grouped property value and the number of records in each group.
  5. Expand a group to review the individual Company records.
  6. Use Refresh groups when you want GroOps to rebuild the saved grouping results from current HubSpot data.

GroOps stores the most recently built group results so the workspace can load previously generated groups without rescanning the full Company database on every visit. The page shows when the groups were last refreshed and how many Company records were scanned.

Expanded group view

An expanded group can display Company name, domain when similarity matching is active, street address, city, state or region, postal code, phone, and Google Places information where applicable.

Selection controls the action

Merge, bulk edit, save, and association actions operate on the Company records selected inside the expanded group. Review the selected rows before applying an action.

GroOps - Company Grouping
05 — Matching

Group matching

Group matching is configured in GroOps settings → Rules → Rule 1 — Group matching.

Match threshold

Threshold Behavior
100%Exact match.
95%Very strict similarity matching.
90%Strict similarity matching.
85%Moderate similarity matching.
80%Broad similarity matching.
75%Broader similarity matching.
70%Widest available similarity matching.

Similarity thresholds below 100% apply only to supported single-line text properties. Non-text Company properties always use exact matching.

Company Domain Name matching

When Company Domain Name is grouped below 100%, GroOps normalizes the domain before comparison. Protocol, www, punctuation, common top-level domain differences, and similar formatting differences do not automatically prevent records from being grouped.

When a group was created with a threshold below 100%, the expanded record table includes the Company Domain Name so users can see the values that led to the similarity match.

Similarity grouping does not automatically merge records

Group matching helps surface records for review. Automatic merge uses its own separate 100% exact or normalized-exact criteria.

Matching rule
06 — Record actions

Review, edit, merge, and associate

Edit Company data

In an expanded group, the following fields can be edited directly from the GroOps table:

  • Company name.
  • Street Address.
  • City.
  • State/Region.
  • Zip/Postal Code.
  • Phone.

Select a cell to edit one value, or select multiple Company rows and use Bulk edit to apply one value to all selected records. Edits are staged in the table until Save selected changes is used.

Merge selected Companies

  1. Select at least two Company records in the expanded group.
  2. Choose the Company that should remain from the Primary selector.
  3. Select Merge selected.
  4. GroOps merges the other selected records into the chosen primary Company.
Groops merge

Associate selected Companies to a parent

  1. Select the Company records that should become children.
  2. Choose the parent Company from the Associate selector.
  3. Select Associate selected.
Association affects selected records only

Choosing a parent does not associate every record in the group. GroOps applies the parent-child association only to the selected child records.

Groops Bulk Associate
07 — Google Places

Optional Google Places setup

Google Places is optional. Core HubSpot grouping, manual editing, merging, and associations do not require a Google API key.

Connecting Google Places enables external Company/location discovery, Google enrichment across Company Groups, Google-assisted parent discovery, and the Update company address with Google workflow action.

Create or locate the correct API key

  1. Open Google Cloud Console and select the project you want to use for GroOps, or create a new project.
  2. Confirm that a billing account is connected to the project.
  3. Enable Places API (New) for the project.
  4. Open APIs & Services → Credentials and choose Create credentials → API key.
  5. Edit the key. Under Application restrictions, choose None. Under API restrictions, choose Restrict key and leave only Places API (New) selected.
  6. Save the key in Google Cloud, copy it, then open GroOps settings → Google Places, paste the key, and choose Save & Test.
Using an existing Google key

Confirm that Places API (New) is enabled for the key's Google Cloud project. The key cannot be restricted to websites or HTTP referrers because GroOps uses server-to-server Google Places requests.

Key storage

The Google Places API key is stored by the GroOps backend in encrypted form. The settings page displays only the last four characters and the most recent validation time. You can replace or remove the saved key from GroOps settings.

Google Places API Storage
08 — Enrichment

Google enrichment in Groups

When a Google Places API key is configured, expanded Company Groups include a Google Enrichment action regardless of which supported Company property was used to build the group.

  1. Build or open a Company group using any supported Group by property.
  2. Expand the group.
  3. Select Google Enrichment.
  4. GroOps searches Google Places for the Companies in the group.
  5. Matched Google values are staged in the editable table and changed records are selected.
  6. Review the proposed values and record selections.
  7. Select Save selected changes to write the approved changes to HubSpot.

Google enrichment can propose changes to Company name, street address, city, state or region, postal code, and phone when Google returns those values.

Enrichment has a review step

Running Google Enrichment does not immediately overwrite HubSpot Company properties. The proposed values are placed in the table for review and are written only when selected changes are saved.

Places Enrichment
10 — Workflows

Google address workflow action

GroOps publishes a Company-based HubSpot workflow action named Update company address with Google.

The action searches Google Places for the enrolled Company and, when an acceptable match is found, overwrites the following HubSpot Company properties with the structured Google values returned:

  • Street Address.
  • City.
  • State/Region.
  • Zip/Postal Code.
This workflow action has no review step

A successful match writes the Google address values directly to the enrolled HubSpot Company. Use workflow enrollment criteria that fit your data-governance process.

Workflow outputs

Output Meaning
ResultUpdated, No match, or Error.
Google Place IDThe matched Google Place identifier when available.
Updated fieldsThe address fields changed by the action.
Result messageA summary of the workflow action result.

If Google Places does not return an acceptable match, the Company is not changed.

Update address with google workflow action
11 — Automation

Automatic merge

Automatic merge is configured in GroOps settings → Rules → Rule 2 — Automatic merge. It is separate from the similarity threshold used to build Company Groups.

1. Choose which record to keep

Add one or more priority rules. Rules are evaluated from top to bottom. The first rule that separates records determines which Company remains.

  • Most complete record.
  • Oldest record.
  • Newest record.
  • Least recently updated.
  • Most recently updated.
  • Property has a value.
  • Lowest property value.
  • Highest property value.
Screenshot 2026-10-03 at 2.39.11 PM

2. Define match criteria

Add the Company properties that must match. Automatic merge supports only 100% exact and 100% normalized-exact criteria. Every populated value for a configured property must agree with the corresponding populated value on the other record.

Match type Behavior
100% exact Compares the stored property value directly.
100% normalized exact Ignores case, spacing, accents, and punctuation. Domain normalization also removes protocol and www.

Automatic merge does not use fuzzy percentage matching.

Allow blanks to match

Use Allow blanks to match when a missing value should not prevent otherwise matching records from qualifying.

Record A Record B Result when enabled
Populated value Same populated value Match.
Populated value Blank Match.
Blank Populated value Match.
Blank Blank Match.
Populated value Different populated value No match.
Blank matching does not allow conflicting populated values

A blank acts as a permissive value only for the configured criterion. Populated values must still match each other. If a sparse record could match multiple groups that contain conflicting populated values, GroOps does not choose a merge target automatically.

Blank values do not replace populated data

If the Company selected to remain has a blank value and a merged Company has a populated value, the populated value is retained through the merge. Enabling blank matching is intended to allow incomplete duplicates to be matched without treating missing data as a conflicting value.

Automated matching criteria

3. Choose a run schedule

  • Manual only — runs only when you select Run Now.
  • Daily — schedules the next run one day after the last completed run.
  • Weekly — schedules the next run seven days after the last completed run.

When a recurring rule is saved and a previous completed run exists, the Next Run Date is calculated from that last run. If there is no previous run, the schedule is calculated from the time the rule is saved.

Screenshot 2026-10-03 at 2.41.46 PM

4. Save and edit the rule

  1. Enable the Automatic merge rule builder.
  2. Configure record-retention priorities, match criteria, optional blank matching, and the run schedule.
  3. Select Save Rule.
  4. The saved configuration becomes the active rule and the rule fields become read-only.
  5. Select Edit Rule when you need to change the saved configuration.
  6. Make the changes and select Save Rule again to apply them.

The action row contains Save Rule or Edit Rule, Preview, Refresh, and Run Now.

5. Preview the saved or edited criteria

Preview scans current Company records and shows the duplicate groups, records that would be merged, and total Company records scanned. It does not change HubSpot data. Preview is available as a sense-check and is not required before a manual Run Now.

Screenshot 2026-10-03 at 2.42.36 PM

6. Run the rule manually

Run Now executes the currently saved rule immediately. If you have unlocked the rule with Edit Rule and have unsaved changes, save the rule before running it. A paid GroOps entitlement is required for automatic merge execution.

Automation status

GroOps displays the automation status, last run status, last run time, number of records merged in the last run, and Next Run Date. Use Refresh to reload the current status. Turning Automatic merge off disables scheduled execution.

12 — Permissions

HubSpot OAuth permissions

The current GroOps Marketplace application requests the following required HubSpot OAuth scopes.

Scope Purpose
oauth Installs GroOps and provides authenticated access to the connected HubSpot account.
crm.objects.companies.read Reads Company records for grouping, matching, review, search comparison, enrichment, associations, and automation.
crm.objects.companies.write Creates or updates Companies, performs supported merges, and applies supported Company associations and enrichment changes.
crm.schemas.companies.read Reads the Company property schema so GroOps can present available grouping and matching properties.

The current app configuration does not request optional or conditionally required HubSpot OAuth scopes.

13 — Data

Data usage and security

GroOps reads and writes only the HubSpot Company information required to provide its Company data-management features. HubSpot remains the system of record for Company records and Company associations.

Data Direction Purpose
Company records HubSpot ↔ GroOps Grouping, editing, merging, associations, Google enrichment, search-created Companies, and automatic merge.
Company property schema HubSpot → GroOps Displays available properties for grouping and automatic merge rules.
OAuth installation credentials HubSpot → GroOps storage Maintains the authorized connection to the installed HubSpot account.
Group results and automation state GroOps storage Stores saved grouping results, matching settings, automatic merge configuration, previews, and run status.
Google Places API key Customer → GroOps storage Authenticates optional Google Places requests made for the connected HubSpot account.
Google search and Company lookup context GroOps → Google Places Finds physical locations and matches Companies for optional Google-powered features.
Subscription metadata Stripe ↔ GroOps Plan entitlement, billing status, billing cycle, and subscription management.

Credential protection

GroOps stores HubSpot OAuth access and refresh tokens and customer-provided Google Places API keys in encrypted form using AES-256-GCM before they are written to application storage.

GroOps uses an Atlantic Ops application backend with PostgreSQL for application-side configuration, cache, automation, and billing metadata. Company records themselves remain in HubSpot.

Third-party services

  • HubSpot — CRM source of truth and destination for Company changes.
  • Google Places API (New) — optional location discovery and enrichment provider.
  • Stripe — subscription checkout and billing management.
Do not send credentials to support

Never include HubSpot OAuth tokens, Google API keys, Stripe secrets, passwords, or other authentication credentials in a support request.

14 — Account management

Uninstalling GroOps

Removing GroOps disconnects the Marketplace application from HubSpot. It does not reverse Company records, property values, merges, or associations that were already written to HubSpot.

Before uninstalling

  • Disable Automatic merge if it is active.
  • Review any remaining Google Places configuration.
  • Review GroOps subscription billing.
  • Confirm that no pending data-cleanup work depends on the app.

Billing

HubSpot app removal and Stripe subscription management are separate actions. Manage the GroOps subscription from the Billing tab when billing should be changed or cancelled.

Application-side data

Contact Atlantic Ops support if your organization requires deletion of GroOps application-side configuration or stored application data after uninstalling.

15 — Troubleshooting

Troubleshooting

GroOps opens in the wrong HubSpot account or cannot load Company data

  • Confirm GroOps is installed in the HubSpot account you are currently viewing.
  • Reload the GroOps page.
  • If the connection was removed or the OAuth installation is no longer valid, reinstall GroOps in the intended account.

No Company groups are shown

  • Confirm a Company property is selected in Group by.
  • Select Build groups if groups have not been created for that property.
  • Select Refresh groups if the saved results are out of date.
  • Confirm the selected property contains values that occur on more than one Company record.
  • Review the configured group match threshold if you expected similar text values to group together.

Google Places key will not validate

  • Confirm billing is enabled on the Google Cloud project.
  • Confirm Places API (New) is enabled.
  • Confirm the key's API restriction allows Places API (New).
  • Confirm Application restrictions are set to None.
  • Do not use a key restricted to websites or HTTP referrers.
  • Paste the key again and select Save & Test.

Google Search says more than 60 locations matched

Refine the query with a narrower geography, facility type, or Company description. GroOps requires a search specific enough to return 60 or fewer locations.

A Google enrichment match looks wrong

Do not save that record. Google enrichment stages proposed changes in the table first, so you can deselect the record or edit the values before saving.

The Google address workflow action returned No match

  • Confirm the enrolled Company has enough identifying information for a Google Places search.
  • Review Company name, domain, city, state, and address information.
  • Confirm the Google Places key is still connected and valid.
  • No Company properties are changed when the workflow action returns No match.

Automatic merge Preview found no duplicate groups

  • Confirm every Match criteria property is correct.
  • Review whether Allow blanks to match should be enabled for incomplete records.
  • Review whether 100% exact or 100% normalized exact is appropriate for each property.
  • Remember that two different populated values never match, even when blank matching is enabled.
  • Automatic merge does not use the Group matching percentage threshold.

Automatic merge is configured but not running on a schedule

  • Confirm Automatic merge is enabled.
  • Confirm the run schedule is Daily or Weekly rather than Manual only.
  • Confirm the current configuration has been saved. A saved rule displays Edit Rule.
  • Use Refresh to reload the automation status and Next Run Date.
  • For Daily and Weekly schedules, the next run is calculated from the last completed run when one exists.

Run Now is unavailable

  • Confirm the rule has been saved. Run Now executes the saved rule.
  • If the rule is currently unlocked for editing, save the changes first.
  • Confirm the connected HubSpot account has an active paid GroOps entitlement.
  • Preview is optional and does not need to be completed before Run Now.

A paid action is unavailable

  • Open GroOps settings → Billing.
  • Confirm the connected HubSpot account has an active paid entitlement.
  • Complete Stripe checkout or manage the existing subscription as needed.
  • Refresh billing status after a billing change.
16 — FAQ

Frequently asked questions

Does GroOps replace HubSpot Company records?

No. HubSpot remains the system of record. GroOps reads and updates normal HubSpot Company records.

Do I need Google Places to use GroOps?

No. Google Places is optional. Company grouping, manual editing, merging, and parent-child association management can be used without a Google API key.

Does Company Group similarity matching automatically merge records?

No. Group similarity matching is used to surface records together for review. Automatic merge uses separate exact or normalized-exact rules.

Can I control which records are merged?

Yes. In a Company Group, select the records you want to merge and choose the primary Company that should remain.

Does associating a parent affect every record in the group?

No. The Associate selected action applies only to the selected child records.

Can GroOps find a parent outside the location search area?

Yes. On the Search page, the optional parent search is independent from the original location-search geography.

Does Google Enrichment immediately overwrite HubSpot data?

No. Google Enrichment stages proposed values in the Groups table. You review the records and use Save selected changes before the values are written to HubSpot.

Does the Google workflow action have the same review step?

No. The Update company address with Google workflow action writes returned address values directly when it finds an acceptable match.

Can automatic merge use fuzzy matching?

No. Automatic merge supports 100% exact and 100% normalized-exact matching only.

Does Automatic merge change records during Preview?

No. Preview only scans Company records and shows the duplicate groups and records that would be merged. It does not change HubSpot data. Changes occur only when Run Now executes the saved rule or when an enabled Daily or Weekly schedule runs.

Is Preview required before Run Now?

No. Preview is an optional sense-check. Run Now executes the currently saved rule. If the rule is unlocked for editing, save the changes before running it.

How does Allow blanks to match work?

When enabled, a blank value does not prevent a match. A blank can match a populated value or another blank, but two different populated values still do not match. Blank values do not replace populated data during the merge.

Who pays for Google Places usage?

Google API usage is billed to the Google Cloud account connected to the API key you provide.

What happens to HubSpot data if GroOps is uninstalled?

Changes already written to HubSpot remain. Uninstalling GroOps does not reverse completed edits, merges, created Companies, or associations.

17 — Support

Support

When contacting support, include the HubSpot account ID, the affected Company record IDs where applicable, the GroOps page or action being used, and the exact error message shown.

Never send authentication credentials

Do not include HubSpot OAuth tokens, Google API keys, Stripe secret keys, passwords, or other authentication secrets in a support request.

Contact Atlantic Ops support

Get help with installation, billing, Company grouping, matching rules, record editing, merges, parent-child associations, Google Places setup, location search, enrichment, automatic merge, workflow actions, or application-side data requests.