Skip to main content

Bulk delete HubSpot contacts from uploaded Excel/CSV file

Workflow preview

Workflow preview
100%
Bulk delete HubSpot contacts from uploaded Excel/CSV file preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Bulk Contact Deletion from HubSpot via Uploaded Excel / CSV File This workflow allows you to automate the deletion of HubSpot contacts based on email addresses provided in an uploaded Excel ( ) fil...

Best for

  • CRM automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, n8n-nodes-base.splitinbatches, n8n-nodes-base.noop, n8n-nodes-base.hubspot, n8n-nodes-base.if, n8n-nodes-base.set, n8n-nodes-base.extractfromfile, n8n-nodes-base.stickynote

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Akhil Varma Gadiraju.

Original n8n.io source

1.1 Workflow description

Title
Bulk delete HubSpot contacts from uploaded Excel/CSV file
Workflow name
Bulk delete HubSpot contacts from uploaded Excel/CSV file

Bulk Contact Deletion from HubSpot via Uploaded Excel / CSV File

This workflow allows you to automate the deletion of HubSpot contacts based on email addresses provided in an uploaded Excel (.xlsx) file. It's ideal for bulk-cleaning outdated or invalid contact data.


βœ… Prerequisites

Before using this workflow, ensure you have the following:

  • A valid HubSpot App Token with permissions to search and delete contacts.
  • An Excel (.xlsx) file with a column labeled emails containing the contact emails to be deleted.
  • n8n self-hosted or cloud environment with:
    • Webhook node enabled and accessible.
    • HubSpot node credentials configured.
  • Basic familiarity with n8n node configuration for custom adjustments (optional).

πŸ“ƒSample Document

Download

🧠 n8n Workflow: Delete HubSpot Contacts from an Uploaded Excel File

This n8n workflow allows you to upload an Excel file containing contact email addresses. It will check each one in HubSpot and delete the contact if it exists.


πŸ”— Workflow Overview

πŸ“₯ 1. Trigger via Webhook (POST)

The workflow starts when a .xlsx file is uploaded via an HTTP POST request to the webhook. This Excel file should contain a column with contact email addresses.


πŸ“„ 2. Extract Data from Excel

The uploaded file is parsed, and its rows are converted into structured JSON items, making each email address available for further processing.


🧹 3. Normalize Data

The data is cleaned and normalized β€” for example, mapping column headers (e.g., emails) into a standard email field, ensuring consistent downstream logic.


πŸ” 4. Loop Through Contacts

Each row (contact) is processed individually using batch looping. This allows for fine-grained error handling and sequential processing.


πŸ”Ž 5. Search for Contact in HubSpot

For each contact, a search query is made in HubSpot based on the email address. The workflow only fetches the first result (if any).


πŸ§ͺ 6. Check if Contact Exists

An IF condition checks whether the contact was found (i.e., if a HubSpot contact ID exists):

  • βœ… Yes β†’ proceed to delete the contact.
  • ❌ No β†’ skip deletion and continue to the next.

πŸ—‘οΈ 7. Delete Contact

If a contact exists, it is deleted from HubSpot using its internal contact ID.


πŸ› οΈ 8. Optional Placeholder for Post-Processing

A placeholder node named β€œReplace Me” is included for any custom logic you may want to add after the deletion step, such as:

  • Logging
  • Notifications
  • Writing to external storage

βœ… Use Cases

  • Bulk delete old or bounced email addresses from HubSpot.
  • Clean up contacts based on external suppression lists.
  • Automate regular CRM hygiene processes.

πŸ’‘ Suggested Enhancements

  • ✍️ Log results to Google Sheets or a database
  • πŸ“¬ Send completion report via email or Slack
  • πŸ” Add retry logic for temporary API failures
  • πŸ” Validate email format before making requests

πŸ“Ž Requirements

  • n8n (self-hosted or cloud)
  • HubSpot App Token (set up in n8n credentials)
  • Excel file (.xlsx) with a column for email

πŸ“¦ Files

No external files are required. All logic is contained within the n8n workflow.


πŸš€ Getting Started

  1. Deploy the workflow in n8n.
  2. Copy the webhook URL and use it in your app or API client (like Postman).
  3. Upload an Excel file containing contact emails via POST request.
  4. Watch as it searches and deletes matches in HubSpot.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Webhook

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 2 - Loop Over Items

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 3 - Replace Me

Type / Role
n8n-nodes-base.noOp - noOp
Config choices
Version 1

Block 4 - Delete Contact

Type / Role
n8n-nodes-base.hubspot - hubspot
Config choices
Version 2.1

Block 5 - Search Contact

Type / Role
n8n-nodes-base.hubspot - hubspot
Config choices
Version 2.1

Block 6 - If contact exists

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 7 - Parse Data

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 8 - Extract File Data

Type / Role
n8n-nodes-base.extractFromFile - extractFromFile
Config choices
Version 1

Block 9 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 10 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 11 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Bulk delete HubSpot contacts from uploaded Excel/CSV file
Complexity intermediate
Nodes 11
Categories CRM
Author Akhil Varma Gadiraju
Published 16 May 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/4100/4100.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Bulk delete HubSpot contacts from uploaded Excel/CSV file do?

Bulk Contact Deletion from HubSpot via Uploaded Excel / CSV File This workflow allows you to automate the deletion of HubSpot contacts based on email addresses provided in an uploaded Excel ( ) fil...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your CRM use case.