I am working to migrate Notes from Salesforce into Hubspot, as the native integration does not migrate this information. I’ve got most of the work completed by interfacing to both API’s via Java, however I’m stuck on my current task. I need to be able to migrate notes incrementally, until we fully switch over to using Hubspot. My issue is I have no way of identifying which Notes I have imported into Hubspot Engagements from Salesforce, without either keeping a local file/database, or downloading all engagements and cross checking “Body” from Notes against body of all Engagements. This just feels like too convoluted of a solution for what could be easily remedied by adding a custom property to Hubspot Engagements.
Many other API endpoints have custom properties, such as Contacts, Deals and Companies. This has allowed me to verify against custom Salesforce properties that have been added to these records via the native synchronization implementation.
Looking at the Engagements API for create_engagement (https://developers.hubspot.com/docs/methods/engagements/create_engagement), I can send a property uid. However, I cannot find a single other reference to this uid property in any other Engagements API. So, I have to assume this is just assigning the ID of the engagement. I have not tested uploading of Engagements yet, primarily because I cannot set a custom property, and I don’t want to just assume what this uid field is for. I do not get a uid returned when querying for a single or all Engagements.
Can anyone shed light on the intention of this uid field mentioned in the link above? How can I get this field returned when querying for all engagements? Can anyone suggest a different or more appropriate method of storing the Salesforce Note ID in the Hubspot engagement other than what I’ve outlined above? If not, I guess my only solution is to use a local store of the ID’s that have been imported and just get on with life.