Solved

Klaviyo and Bubble Integration

  • 9 June 2021
  • 4 replies
  • 720 views

Badge +2

Hello. I am a Developer and I am new to this platform however, I am facing some issues.

I am developing a App on Bubble where a user can come and create an event which will have sub-events like (if you were to go on a vacation, the overall event would be “vacation” and sub-events can be “dinner one night”, an “excursion” etc. Once the organizer has created an event, the visitors will be able to RSVP to the event but they will need to sign up for my app for that.

Now I want to integrate Bubble with Klaviyo so that whenever a user subscribe to my App that user is automatically added to Klaviyo and various segments and demographic data which is necessary is also added to Klaviyo.

I am confused whether to use the Track and Identify API or Restful API for this purpose and whether the POST method from my bubble platform will work or not?

If anyone can point me in the right direction for this. That would be really helpful.

icon

Best answer by Dov 9 June 2021, 22:03

View original

4 replies

Userlevel 7
Badge +61

Hello @Mohid,

Thank you for sharing your question with the Klaviyo Community.

It sounds like you’re looking to send a discrete (overall) event containing information about that event (sub event). In this case you would use our Track API which is used to send actions a person has taken to Klaviyo attributed to the user profile. You would include both the main and the sub-events (what we call “event data”) within the Track Call. For an example, I recommend having a look at our Track API reference guide

Once the event is in Klaviyo, you will be able to segment people using the “What somebody has done” condition pertaining to events. I will provide an example below using Klaviyo’s “Active on Site” metric.

 

From here, you can use this segment to send to these folks outright via a campaign. Or create a flow triggered off of this event to target these people.

In contrast, the Identify API allows you to identify and set properties on an individual. A successful identify call would be reflected on the Klaviyo profile as a discrete custom property. In a segment, instead of using “What somebody has done”, you would use the “Properties about someone” condition to call upon custom properties. You can also use custom properties in flow emails. More information on that process here.

In terms of the POST method, it is difficult to say for certain without any further information about your platform, but for all event-related calls, you should be using the Track API. We also have a guide here on integrating a custom platform that you may find helpful.

I hope this helps answer the question. Thanks and have a great day. 

Badge +2

Hey @dov.derin. Thank you so much for sharing such an in-depth response. This is surely helpful. If I am having any other issue. I’ll do refer the docs and community forum for the solution. Thank you once again and have a great day.

Userlevel 7
Badge +36

Hi @sergioleis!

 

I’m glad to see that this question was answered in a different thread that you started, so for the sake of organization and visibility, I’m going to link it here for any other Community members that may experience this problem:

 

Thanks for using the Community!

- Brian

Badge +1

Hi @Mohid and @Dov

I’m facing some issues integrating Bubble and Klaviyo Track API integration and thought you might have an answer :)

I manage to integrate the Subscribe Profiles to List endpoint correctly, but I'm stuck using the Track Profile Activity endpoint.

Here’s my setup from bubble:

- I have included my public api key (TfN89i) instead of the private key
- I have included the header parameters for accept and content type
- I have made sure the $email in the call exists within Klaviyo AND has consent status
- I have set the body type to JSON
- I have copy and pasted the exact example (replacing api key and $email)

I am receiving the following response, apparently OK by my platform, but the event does not appear in klaviyo:

{
"body": null,
"error": {
"status_code": 200,
"status_message": "OK",
"body": "\"0\""
},
"returned_an_error": false
}

 

Thanks in advance for your help!

Reply