Sync new Addepar households into HubSpot every Monday
Every Monday at 7am, pull new households from Addepar into HubSpot as contacts and companies, then post a Slack summary flagging duplicates.
Every Monday at 7am, sync new households from Addepar into HubSpot so client operations stays in lockstep with the wealth platform. This runs on a cron trigger because Addepar does not emit webhooks and is not a supported poll source, so a weekly sweep is the right shape.
Step 1 — pull households and clients from Addepar. Use Addepar List Entities to fetch household and client entities that were created or last updated since the previous run. Group clients under their household. For each household, use Addepar Query Portfolio Data to fetch the latest total assets under management (a market value column, as of today), plus any household attributes the firm uses to bucket clients (advisor owner, region, segment).
Step 2 — check HubSpot for existing records before creating anything. For each Addepar household, look up existing HubSpot contacts by the primary client's email (exact match) and by name (fuzzy match on first + last, tolerating minor spelling variations, nickname vs. legal name, and prefix/suffix differences). Do the same for HubSpot companies against the household name. If a close but not identical match already exists, skip the create and flag it as a suspected duplicate — do not auto-merge. Treat an exact email match on the primary client as the same person and update rather than create.
Step 3 — write into HubSpot. Use HubSpot Batch Upsert Contacts (matched on email) to create or update a contact for each household's primary client. Set the Addepar entity ID as a unique custom property on the contact so future runs can match on it directly and never double-create. Enrich the contact with lifecycle stage and the advisor owner sourced from the Addepar household. Then use HubSpot Create Company to represent the household, populating the company with the household name, the latest total AUM from Query Portfolio Data, and any relevant segmentation attributes. Associate the primary client contact to the household company.
Step 4 — track AUM tier changes. Compare the current AUM to what HubSpot last had for each household company. When a household crosses a tier boundary the firm cares about (for example moving between mass-affluent, HNW, and UHNW bands), note the transition for the summary. Tier thresholds should be configurable — start with sensible defaults and let the user tune them.
Step 5 — post a Slack summary. Use Slack Send a Message to post to the client ops channel with three sections: new households added this run (name, primary client, AUM, advisor owner), households whose AUM tier changed since last run (household, old tier, new tier, delta), and suspected duplicates that need a human decision (Addepar household on one side, closest HubSpot match on the other, plus why it was flagged — email overlap, near-identical name, etc.). Keep the message scannable with clear section headers; the whole point is that a client ops lead can read it over coffee and know what to action.
Guardrails: never write to HubSpot without checking for a close match first. Never delete or archive existing HubSpot records. Prefer updating an existing HubSpot contact over creating a new one when the Addepar entity ID or email matches. If Addepar Query Portfolio Data would run against too many entities to fit inside a single sync call, break the query into batches by household. On errors from any single household, keep going and include the failure in the Slack summary rather than aborting the whole run.
Additional information
What does this prompt do?
- Pulls new households from your wealth platform every Monday morning so client operations sees them the same day advisors do.
- Creates or updates a HubSpot contact for the primary client and a HubSpot company for the household, tagged with the latest total assets under management.
- Fuzzy-matches on name and email before creating so you don't end up with duplicate records.
- Posts a Slack summary listing new households added, households whose AUM tier changed, and any close matches that need a human decision.
What do I need to use this?
- An Addepar account with permission to see households, clients, and portfolio data
- A HubSpot account where you can create and update contacts and companies
- A Slack workspace and a channel for the weekly summary
- A default lifecycle stage and advisor owner mapping you want new contacts to land with
How can I customize it?
- Change the day and time the sync runs (weekdays, twice a week, first business day of the month)
- Pick which Slack channel or user gets the summary
- Adjust the AUM tier thresholds that trigger a change alert
- Choose the lifecycle stage and default advisor owner applied to newly created contacts
Frequently asked questions
Will this create duplicate contacts in HubSpot?
What happens if a household has multiple clients?
Can I run this daily instead of weekly?
What if my advisors work in Salesforce, not HubSpot?
What counts as a close match that needs review?
Related templates
Stop learning about new clients a week late.
Keep your client ops team in lockstep with what advisors are opening in Addepar, without hand-copying households into HubSpot.