Bulk delete Notes

Status: Idea Submitted

I want to delete all Empty Notes of my contacts by clicking a button.

I need this too. Imported a 600 contact file with mostly empty notes. Only way currently is to use API or delete manually.

I need this to. Far to many empty notes have been crerated during an import.

This would be a great idea!

I would need this too, i should have imported contacts with notes separately but i didn’ t know empty notes would have been imported as well.

Totally agree - feels like it could be something similar to the dedupe function; notes with no body text

And also bulk delete duplicate notes. Often imports do not work exactly as expected and create duplicates.

Would love this feature. Seems simple enough to not allow blank notes to be imported to start with also… It’s almost like a bait and switch, since it’s counterintuitive to think that HubSpot would’ve imported blanks by default.

It would be so useful, you have no idea!

I have thousdands of duplicate or empty notes. Being able to bulk delete them woul be so useful!

I wonder how many years we need to upvote this for HubSpot to take notice to bulk delete tasks, notes and etc..

It would be great indeed for empty note (object) but alo to clean all specific notes that containt a specific text.

Yes, deleting value in Notes Body in Bulk is a vital feature. Bulk imports does have a scope of error so whenever a wrong value is updated that we do not want to be there in Notes. We are in for a big trouble with manual deletion. Please introduce this feature on a priority.

deleting notes from multiple contactpersons (bulk) would would be time winning.

Hi everyone! I recently had a Zap ran amok and created thousands of junk notes (stuck in a loop) in HubSpot. This obviously created a need to somehow batch delete notes:

  • Use HubSpot reports to generate a spreadsheet of all the notes you want to delete. Unless you want to purge your entire CRM of notes, filters are your friend. Make sure you include Record ID in the report before you export.
  • Export the report. Copy the resulting CSV data into Google Sheets.
  • Convert the Record IDs (currently in spreadsheet cells) into a block of JSON code. You’ll need them to look like this:
{ "id": "29015352859" },
{ "id": "29003254874" },
{ "id": "29015998478" },
{ "id": "29020500047" },
{ "id": "29030953370" },
{ "id": "29022145036" },
{ "id": "29027079034" },
{ "id": "29039831964" },
{ "id": "29000683812" },
  • …except with your own record IDs between the quotation marks in the value field, of course.
    • I used Zapier Transfers to push the Google Sheets data into a Google Doc and format it accordingly.
    • There are other solutions, but however you do this, it really needs to be automated. You’ll spend a horrible amount of time doing this manually if you have more than 50 notes you need to delete.
  • Log into, or setup an account with, Postman or an equivalent HTTP request service.
  • Create a new HTTP request.
  • Use this as the endpoint: https://api.hubapi.com/crm/v3/objects/notes/batch/archive
  • Set the REST method to POST.
  • You’ll need two headers in this request:
    • Authorization: Bearer [Your Private App Token]
      • If your HubSpot portal doesn’t yet have a private app set up, it’s pretty straightforward. Click here for details.
    • Content-Type: application/json
    • Don’t forget these headers or HubSpot won’t accept your request.
  • Now you need to configure the body of your request. Set the body type to “raw” and format your JSON like this:
{
 "inputs": [

{ "id": "29015352859" },
{ "id": "29003254874" },
{ "id": "29015998478" },
{ "id": "29020500047" },
{ "id": "29030953370" },
{ "id": "29022145036" },
{ "id": "29027079034" },
{ "id": "29039831964" },
{ "id": "29000683812" },
{ "id": "29010791560" },
{ "id": "29011675937" },
{ "id": "29020220584" },
{ "id": "29039681164" },
{ "id": "29020355369" },
{ "id": "29027529760" },
{ "id": "29023272274" },
{ "id": "29005189302" },
{ "id": "29010423691" },
{ "id": "29023683754" },
{ "id": "29040248322" },
{ "id": "29015189023" },
{ "id": "29015915663" },
{ "id": "29036267442" },
{ "id": "29007310674" },
{ "id": "29028615343" },
{ "id": "29016673957" },
{ "id": "29001785611" },
{ "id": "29012472412" }

 ]
}
  • Start copy-pasting blocks of record IDs from your Google Doc into the ID block above and get to deleting!
  • Note: The API disallows batches of greater than 100, so even with this method, it might be a bit of a chore if you have thousands of notes to purge.

Good idea! Would be nice to have the possibility to select through a filter notes to be deleted.

I’d like to expand this request by asking HubSpot simply to consider modifying or deleting notes via the existing import process: providing a CSV or XLSX file of notes to modify or delete. Our specific use case: I batch created 127 notes and found that because I’d set the notes to be created at a date in the past, they didn’t appear at the top of the activity feed where I wanted salespeople to see them. I adjusted the date in my import file today’s date and tried to-reimport but was prevented. The import system stated notes could not be modified.

Update: Using a runner in Postman is an even more time-effective way of modifying otherwise inaccessible records in HubSpot.

@Edsby In your case, you can delete all the notes you created using a Postman HTTP request and runner and then import them again using the correct create date values. You can set up your Postman call as I described above, except this time use the “runner” feature to have Postman run through a CSV file with your note IDs.

This would be a great feature to have, yes.

This idea has been raised in the Japanese Community too. Link here: I’d like to be able to bulk delete Notes of the company records I’ve imported