JUST Docs
Tutorials

Update a profile property from a Workflow Completed event

Build a Klaviyo flow that copies a workflow answer onto the shopper's profile, using a webhook action.

At the end of this tutorial, every Workflow Completed event writes one of its answers onto the shopper's Klaviyo profile as a profile property, ready for segments and personalization.

Prerequisites

1. Create the flow

In Klaviyo:

  1. Open the Flows tab.

  2. Click Create flow (top right).

  3. Select Build your own (top right).

  4. Name it, for example:

    GETJUST - Workflow
  5. Click Create manually.

2. Set the trigger

The trigger selector opens on Recommended.

  1. Click Your metrics, then API.

  2. Pick Workflow Completed.

  3. Choose your re-entry criteria. Add trigger filters if you need them.

  4. Click Save, then Confirm and save.

You land on the flow canvas. The trigger reads When someone Workflow Completed.

Not just properties

This tutorial updates a profile property, but from this same trigger you can also send an email, a text message or a WhatsApp message, update a list, send a webhook, or create an internal alert.

3. Add a webhook action

Klaviyo's built-in Property update action cannot read the event's fields dynamically. So the property is written through a Webhook action calling Klaviyo's own API.

  1. Click the + under the trigger (add action).
  2. Under Data, choose Webhook.

The panel on the left configures it.

4. Configure the webhook

Name

For example:

Update profile property

Destination URL

https://a.klaviyo.com/client/profiles/?company_id=XXXXXX

XXXXXX is your 6-character public API key. Find it on your API keys page, under Public API key, next to your company name.

Headers

Two key-value pairs. Click Add header for the second one.

KeyValue
revision2026-04-15
Content-Typeapplication/json

revision is the Klaviyo API version. Content-Type says the body is JSON.

JSON body

The payload sent to Klaviyo:

{
  "data": {
    "type": "profile",
    "attributes": {
      "email": "{{ person.email }}",
      "properties": {
        "interet": "{{ event.valise_type|default:'' }}"
      }
    }
  }
}

What this is:

  • type is the kind of object the call updates: a profile.
  • attributes.email identifies the profile. {{ person.email }} is filled automatically from the event's shopper.
  • properties holds the profile properties to create or update. This example creates one property, interet, from the event's valise_type field. Add as many as you want, as long as each value exists in the event.

Find the event's fields

  1. Click View profile & event properties under the JSON body.

  2. Profile shows the person's profile. Event lists every field the event carries, including the Klaviyo keys you configured in the dashboard.

  3. Click a field to copy it, ready to paste into the JSON body, like {{ event.valise_type|default:'' }}.

When you are done, click Save under the JSON body. The flow now shows the trigger, then the webhook action.

5. Preview

  1. Click Preview (top right).
  2. Search for the profile of a shopper who already completed the workflow. Click it.
  3. Check the webhook rendered with that profile's real event.
  4. Click Exit preview.

6. Turn it on

  1. Click Update status (top right).

  2. Choose a status: Draft, Live or Manual.

  3. Choose Update status now or Schedule.

  4. Click Save.

7. Verify

  1. Complete the workflow once, with an email whose profile does not have the property yet.
  2. Open the profile in Klaviyo. Check the property is there.

A "send a test event" button with a custom email is coming soon in the dashboard.

On this page