Sync a Custom ID property to Hubspot contacts
You find you need to do anything fancy but there is no way to uniquely identify users apart from their email address? Well here is a hokey-pokey work-around.
What this does is just base64 encodes the
vid property to a custom property that we can actually use.
I don't like the idea of directly exposing the vid. So this obfuscates it slightly. However, it is still easy
to decode in pretty much any programming language as far as I am aware of.
One example of a use case is adding it as query string in a url from a link in an email. We can then use it to identify the user that clicked the email on the target page.
composer require focuscanada/hubspot-custom-id
Name it something like
custom_id, and make it a single line text field.
You will need to create a new smart list that contains only contacts where the
custom_id property is
Remember the ID of that list. (It should be the number as the last component of the url when editing the list)
<?php require __DIR__.'/vendor/autoload.php'; use Focus\HubspotId\SyncService; use Fungku\HubSpot\HubSpotService; $hubspot_api_key = 'demo'; $hubspot_list_id = '12345'; $hubspot_property = 'custom_id'; $hubspot = HubSpotService::make($hubspot_api_key); $sync = new SyncService($hubspot, $hubspot_property); $sync->syncList($hubspot_list_id);
If you don't want it to run just as something like a cron job, or manually. Then you can deploy it to a server somewhere and create a workflow to access your script as a webhook.