Stand up Addepar households from every closed-won Salesforce deal

Every hour, spin up the matching Addepar household the moment a Salesforce opportunity closes so ops isn't stuck creating client records by hand.

Agentic Task
AddeparSalesforceSlackOperationsSalesOnboarding AutomationData Sync
PromptCreate

Every hour on the hour, watch Salesforce for opportunities that just flipped to Closed Won and stand up the matching client household in Addepar so the ops team stops creating records by hand after every signed deal.

Pull eligible deals from Salesforce with Get Many Opportunities filtered by StageName = 'Closed Won' and LastModifiedDate within the last hour. For each opportunity, use Get Many Accounts to fetch the linked account, primary contacts, and any onboarding-relevant custom fields you need to seed the client record. If the designated Addepar entity ID custom field on the opportunity is already populated, skip that opportunity — it was created on a previous run and re-creating it would duplicate the household.

For each opportunity that still needs onboarding, call Addepar List Entity Types to confirm the required attributes for the firm's household entity type. Then call Create Entity to add the household with the name, primary owner, and custom attributes mapped from the Salesforce account and opportunity fields. If the opportunity line items describe sub-entities such as individual brokerage accounts, joint accounts, or trusts, call Create Entity again for each of them and attach them under the parent household.

Immediately after a household is created, use Salesforce Update Opportunity to write the new Addepar entity ID back into the designated custom field on the opportunity. This is the load-bearing idempotency step — retries, partial failures, and duplicate cron runs all rely on that field being present to short-circuit.

Once the hour's batch is processed, post a single card to the onboarding Slack channel with Send a Message. List every household you created with its new Addepar entity ID, and separately list any opportunities that failed validation (missing required attributes, ambiguous entity type, unresolvable owner, etc.) so ops can pick them up manually. If nothing closed in the last hour, skip the Slack post.

Use judgment when choosing the entity type from List Entity Types — household vs individual vs trust depends on what the Salesforce account and opportunity fields describe. When a required Addepar attribute is missing or the entity type is ambiguous, do not guess: skip that opportunity and flag it in the Slack card. This workflow requires the ENTITIES_WRITE scope on Addepar and read plus field-update access on Salesforce Opportunity and Account.

Additional information

What does this prompt do?
  • Watches Salesforce every hour for opportunities that just moved to Closed Won.
  • Creates the matching household in Addepar with the right owner, contact, and onboarding attributes pulled from the deal record.
  • Adds sub-accounts (individual brokerage, trust, joint) under the household when the deal line items call for them.
  • Posts a summary card to your onboarding Slack channel with each new Addepar client ID plus anything that needs a human look.
What do I need to use this?
  • A Salesforce login with access to your Opportunities and Accounts.
  • An Addepar login for the firm that lets you create client households.
  • A Slack workspace and the onboarding channel you want the update sent to.
  • A dedicated Salesforce field on Opportunity for storing the new Addepar client ID so the workflow knows what's already been done.
How can I customize it?
  • Change how often it runs (default is every hour, but nightly or twice a day work just as well).
  • Point it at a different Slack channel, or split notifications by advisor team.
  • Adjust which Salesforce fields flow into the household record and which line items become sub-accounts.

Frequently asked questions

What if the same deal gets picked up twice?
We stash the new Addepar client ID back on the Salesforce opportunity right after creation. On the next hourly run, anything with that field already filled gets skipped, so retries never create duplicate households.
How does it decide whether to open a household, an individual client, or a trust?
It reads the entity types your firm has set up in Addepar, then picks the closest match based on the Salesforce account and opportunity fields. Ambiguous cases are flagged in the Slack summary for a human to resolve instead of guessing.
What happens if the Salesforce record is missing something Addepar requires?
The workflow does not create a broken record. It skips that opportunity and lists it in the Slack card with a note about what was missing so your ops person can fill in the gap and rerun.
Do the sub-accounts like brokerage, trust, or joint get created too?
Yes, if the opportunity line items describe them. Each one is added under the parent household so the reporting structure in Addepar matches the deal that closed.
Do I need Salesforce's premium tier for this?
You just need a login that can read Opportunities and Accounts and update a custom field on Opportunity. Most Sales Cloud editions cover that.

Stop doing Addepar client setup by hand.

Wire the Salesforce close event straight into your Addepar onboarding so new households appear the same day the paperwork is signed.