Mass Deleting Activities without Associated Objects

Hi!

Is it possible to separate activities that no longer have any associated objects (not linked to contacts, companies, deals) and mass delete them?

I am able to report on activities without any associations, and can see their type (call, meeting, etc), when they were created and by whom, along with their ‘engagement ID’.

If I wanted to use this ID to find/list all of these activities to bulk delete them, where in Hubspot can this be done?

I received a response concerning APIs, however the option only shows for activities associated to objects:

Thank you!

Hi @VPrimerano :waving_hand:

The “Delete an Engagement” endpoint in your screenshot should do the trick regardless of whether the given Engagement record is associated to a HubSpot CRM record.

Also, if you’d like to delete them in batches via API, you may be able to achieve this using HubSpot’s V3 CRM API endpoints. The object type definitions that relate to these CRM endpoints are outlined in this HubSpot doc (they include at least some engagement types, e.g. Calls, Tasks, Meetings). For example:

POST https://api.hubapi.com/crm/v3/objects/**meetings**/batch/archive

{
 "inputs": [
 {
 "id": "123"
 },
 {
 "id": "456"
 }
 ]
}

I hope that proves helpful. Please let me know if you have any follow-up questions.

Hey, @VPrimerano :waving_hand: To support what Zach shared, I set up a quick test.

Steps:

  • Created three Notes without any associations

  • Made a request to the Search API to verify they existed

    POST https://api.hubapi.com/crm/v3/objects/notes/search
    Body
    
    {
     "filterGroups": [
     {
     "filters": [
     {
     "propertyName": "id",
     "operator": "IN",
     "values": [
     "64404247213",
     "64407549982",
     "64413278241"
     ]
     }
     ]
     }
     ]
    }​
    
  • Made a request to the DELETE endpoint (I did this three times, one for each ID)

    curl --request DELETE \
     --url https://api.hubapi.com/crm/v3/objects/notes/64413278241 \
     --header 'authorization: Bearer YOUR_ACCESS_TOKEN'​
    
  • Then I made the same request to the Search API to verify they are gone (you could also use the Notes API endpoint GET a Note by ID)

    {
     "total": 0,
     "results": []
    }​
    

I hope that helps get you moving forward! — Jaycee

And to your original question, you should be able to use the Batch endpoint to delete your notes en masse. I used the simple (single) endpoint for our example, but that may not be efficient for your use case. — Jaycee