Skip to main content
Question

Using multiple webhook events to progress user through campaign workflow

  • 11 June 2024
  • 4 replies
  • 36 views

Hello!

I would like to use CustomerIO Workflows to manage the logic and content for a real-time chat with our customers. Currently, I have a campaign that is triggered by an initial “customer_message” event that sends an initial welcome message asking what they would like to do (e.g. reply “1” if you want customer service, “2” if you would like more information, etc). I then have the campaign waiting for another “customer_message” event with the customer’s response as an attribute, however, it doesn’t seem like I have any way of branching my workflow based on this second event’s attributes. 

Is the only solution here to update the customer’s attributes with the content of the latest response message rather than relying on event attributes? Or is there another solution? Because this is a real-time conversation, I am nervous about the customer’s attributes failing to update before the event is processed. 

4 replies

Userlevel 4

Hey tjc,

what chat tool are you using? Frankly speaking I would have the same concern. I had insidences where the attribute was not updates fast enough. I would test it anyway, though because CIO is fast in updating. I know that the Twilio Studio allows you to use saved variables across the flow which is faster and more reliable.

As far as I know this is not possible with CIO. Might be a good feature request… @Customer.io?

Thanks for the response, @Felix !

I am using the WhatsApp Business API for all our customer communications, which means I’m going to need to send any triggered CIO messages back to my own server via webhook before forwarding them along to WhatsApp. So far in my testing, that part has been surprisingly reliable, however, if workflows only have access to that initial event it’s going to make it much more difficult to configure everything.

Userlevel 1

Hi @tjc59 

What if you create another campaign that repeatedly triggers for every “customer_message” event (e.g. 1st answer based on your initial message), and then do a branching based on the message, or even get data from another service (e.g. your backend, or OpenAI API etc) to compose the response?

You would have one campaign that initially triggers the 1st message and a 2nd that handles all responses.

André

Userlevel 2

As far as my experience goes, yes. Campaigns are only able to reference the event that caused the campaign to trigger in the first place. You can imagine how difficult it would be for you, let alone the system, to try and isolate the correct event from the thousands of events coming in for that same user. It would be a very complicated set up!

So yes, your work around would be to use attributes, but I also share the same concern of speed. Even if it updates relatively fast, you’re talking about realtime updates back to the customer, and that might be too much to ask. Typically I’ve done this from within the chat tool itself (like Intercom or Drift)

Reply