Remove Duplicate Records from Hubspot via Slack

Your team discusses duplicate company records in Slack: 'Acme Corp and ACME CORPORATION are the same'. Notis archives the duplicate and consolidates the records so your database stays clean.

Trigger

Channel Message Received

Triggered when a message is posted in a Slack channel (public, private, or multi-party IM). Does NOT match direct messages.

Hubspot logo

Action

Archive batch of objects by id

Archives a batch of existing, non-archived crm objects of a specified `objecttype` by their ids, effectively hiding them from active use.

Why this helps

Duplicate records clutter your Hubspot database and skew reporting. Searching becomes unreliable, and you lose confidence in your data. Manual cleanup is tedious and often gets postponed.

  • Keep your database clean and deduplication effort low
  • Prevent reporting skew from duplicates
  • Improve search accuracy across your CRM
  • Reduce manual cleanup work

Setup

Build it in a few focused steps.

  • 1Connect Slack and Hubspot to Notis.
  • 2Create an automation: 'When someone mentions a duplicate record in #data-cleanup, archive the duplicate in Hubspot.'
  • 3Designate a channel like #data-cleanup for duplicate reports.
  • 4Your team posts identified duplicates like 'Company: Acme vs ACME Corp' or 'Contact: John Smith duplicate'.
  • 5Notis finds the duplicates and archives the older or less complete record.

Questions about this workflow

How does Notis determine which record to archive?

You specify which record to keep (usually the more complete one). Notis archives the other copy.

Can I merge records instead of archiving?

Hubspot's API doesn't support record merging, so archival is the current approach. You can restore a record manually if needed.

Does this work for all object types?

Yes. Contacts, companies, deals, products, or any CRM object type can be archived this way.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

Notis builds workflows that link Slack to Hubspot. A trigger fires from one place; an action lands in another.

Slack logo

Slack triggers

Hubspot logo

Hubspot actions

New Channel Created Trigger

Triggered when a new channel is created in Slack.

TriggerInstant

Add asset association

Associates an existing asset ('form', 'object list', or 'external web url') with a specified hubspot marketing campaign.

ActionInstant

Channel Message Received

Triggered when a message is posted in a Slack channel (public, private, or multi-party IM). Does NOT match direct messages.

TriggerInstant

Add token to event template

Adds a new custom data token to an existing event template for a specified hubspot application, optionally populating a crm object property if objectpropertyname is provided.

ActionInstant

Direct Message Received

Triggered when a new direct message (DM) is sent to a user in Slack. Catches all DMs across all DM channels.

TriggerInstant

Archive email

Archives the hubspot email specified by `emailid` by moving it to the recycling bin, making it inaccessible unless restored.

ActionInstant

Message Reaction Added

Triggered when a reaction is added to a message in Slack. Supports optional filtering by channel and emoji name.

TriggerInstant

Archive a batch of emails by ID

Archives multiple hubspot crm emails by id; ids must exist as archiving is irreversible.

ActionInstant

Message Reaction Removed

Triggered when a reaction is removed from a message in Slack. Supports optional filtering by channel and emoji name.

TriggerInstant

Archive a batch of quotes by id

Archives a batch of existing, non-archived quotes by their ids; this action is irreversible and useful for managing outdated or irrelevant quotes.

ActionInstant

Reaction Added Trigger

DEPRECATED: use `SLACK_MESSAGE_REACTION_ADDED` instead. Triggered when a reaction is added to a message in Slack.

TriggerInstant

Archive batch of companies by id

Archives a batch of companies by their unique ids; targeted companies must exist, not be previously archived, and this api operation is irreversible.

ActionInstant

Reaction Removed Trigger

DEPRECATED: use `SLACK_MESSAGE_REACTION_REMOVED` instead. Triggered when a reaction is removed from a message.

TriggerInstant

Archive batch of contacts by id

Archives a batch of existing contacts by their hubspot crm ids, rendering them inactive; this action is irreversible via the api and requires manual restoration or a separate unarchive endpoint.

ActionInstant

New Bot Message Received Trigger

DEPRECATED: use `SLACK_CHANNEL_MESSAGE_RECEIVED` with `is_bot_message=true` instead. Triggered when a new bot message is posted to a Slack channel.

TriggerInstant

Archive batch of deals by id

Archives a batch of existing deals by their unique hubspot ids, removing them from active views and reports (soft delete); archived deals may be restorable.

ActionInstant

Connect any two apps with Notis in the middle.

Not just Slack and Hubspot. Any combination from 985+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7 days free trial with 20$ free usage included.
No card. Works with personal or business Hubspot.