Hi Klaviyo Community,
I’m working on a flow that uses a webhook to preserve the source and campaign data for where users initially signed up. Here’s what I’m trying to achieve:
- All new signups have two properties:
recent_signup_source
andrecent_signup_campaign
. - The webhook should take these values and store them in the properties
initial_signup_source
andinitial_signup_campaign
, ensuring we track where users originally signed up from.
Here’s the setup I’m using:
Headers and Keys:
Authorization: Klaviyo-API-Key YOUR_PRIVATE_API_KEY
Content-Type: application/json
Accept: application/json
revision: 2024-07-15
JSON
{ "data": { "type": "profile", "attributes": { "email": "{{ person.email }}", "properties": { "initial_signup_source": "{{ person.recent_signup_source }}", "initial_signup_campaign": "{{ person.recent_signup_campaign }}" } } } }
Problem:
When the flow runs and the webhook attempts to update an existing profile, I receive an HTTP 409 Conflict error.
- I’ve already verified that there are no duplicate users with the same email or phone number in my account.
- The error persists, even though the intent is only to update the properties
initial_signup_source
andinitial_signup_campaign
.
Questions:
- Is my payload correctly structured for this use case?
- Are there additional headers or steps required to avoid the conflict?
- Could there be another reason the 409 error is triggered, despite no duplicates being present?