A store with a wholesale desk
Consumer orders feed Klaviyo flows, while HubSpot holds wholesale buyers and the account managers who call them. One checkout writes the person to both, and the team filters by tag or property afterwards.

Webhook or Zapier
Plandalf sits beside HubSpot and Klaviyo: one checkout writes the buyer to both by webhook, and each can start a Plandalf sequence.
No credit card required. No coding required.
HubSpot
KlaviyoPlandalf does not sync HubSpot with Klaviyo and has no native step for either. Both are reached by Send Webhook calls to their APIs, so one sequence can write a buyer to each. A HubSpot workflow or a Klaviyo flow can also post to a Plandalf catch URL.
| Event | From and to | Through | What happens |
|---|---|---|---|
| Checkout completed | Plandalf → HubSpot | Webhook | A Send Webhook step calls HubSpot's contacts batch upsert with a Bearer token, passing the email as the record id and email as the idProperty. |
| Checkout completed | Plandalf → Klaviyo | Webhook | A second Send Webhook step posts a profile to Klaviyo's profile import, with a Klaviyo-API-Key authorization header, a revision header and the application/vnd.api+json content type. |
| Workflow webhook | HubSpot → Plandalf | Webhook | A HubSpot workflow action posts contact properties to a catch URL. Plandalf can then forward the same person to Klaviyo with another Send Webhook step. |
| Flow webhook | Klaviyo → Plandalf | Webhook | A Klaviyo flow's Webhook action posts a JSON body you write, with optional headers, to the catch URL. Klaviyo sends POST only. |
| Countdown in emails | Plandalf → Klaviyo | A Plandalf countdown image goes into a Klaviyo email with {{ person.email }} in the query string, and HubSpot emails use {{ contact.email }} the same way, so each recipient sees a personal deadline. |
You need a HubSpot private app token and a Klaviyo private API key. Neither tool is connected in Plandalf; both live in step headers.
In Automation, My Sequences, choose Plandalf, Checkout Completed and your offer. On the Test tab pick a recent checkout so {{trigger.customer_email}} and the name variables resolve.
Add Send Webhook with POST to HubSpot's batch upsert path for contacts. Add Authorization as Bearer followed by the private app token, and send one entry in inputs with the email as id, idProperty as email and the names in properties.
Add a second Send Webhook, POST to Klaviyo's profile import address. Set the Authorization, revision and Content-Type headers, and build the JSON:API payload with type profile and the email in attributes.
Each test makes a real call. Read the status code in each step's output and open the HubSpot contact and the Klaviyo profile to confirm.
Add a sequence with the Webhook Trigger, copy its URL into a HubSpot workflow action or a Klaviyo flow Webhook action, and send a real event so the Test tab can capture a sample.
Consumer orders feed Klaviyo flows, while HubSpot holds wholesale buyers and the account managers who call them. One checkout writes the person to both, and the team filters by tag or property afterwards.
A software founder keeps deals in HubSpot and onboarding emails in Klaviyo. A paid checkout creates the HubSpot contact so a follow-up task can be created, and the Klaviyo profile starts the welcome flow.
ref query value, and each tool has its own merge tag for the recipient's email, so the countdown is personal in either.Checked October 26, 2026 against Plandalf's own setup guides and the vendor documentation: HubSpot developer docs: contacts API, HubSpot developer docs: private apps, HubSpot knowledge base: webhooks in workflows, Klaviyo API: create or update profile (profile import), Klaviyo: how to add a webhook action to a flow.