Generate More Leads For Your Livestorm Webinars With a Chatbot

Apps Feb 14, 2021

At Clevy, we have been Livestorm customers since many years now and have organized numerous webinars on this platform. My personal favorites are: Build and Deploy a Customer Satisfaction Chatbot in 45 minutes and for our French-speaking readers, REST: Comment normaliser les échanges applicatifs. (Also: our next webinar is next week and about HR chatbots!)

Yesterday, I saw this post by Livestorm CEO Gilles Bertaux announcing the launch of their public API.

So we jumped on the occasion and built a Livestorm app and chatbot! You can find the final source code for the chatbot on github so you can import it and modify it to your liking in CSML Studio.

Gathering User Information

To register participants to your webinars, you will need to get their name and email address. As webinars are often a way to generate leads for your business, you may also want to ask what company they work for or the job they do: it's all up to you. For instance, in our next webinar (please register!), we require both your company name and job title, while the phone number is only optional.

Email, First Name, Last Name, Job Title and Company Name are mandatory. Phone number is optional.

If we were to build a chatbot (spoiler alert: we are) for this use case, we would need to ask for this information.

Here is how the code would look like in CSML:

// Greetings
  say "Hi there!"
  say Image("")
  say Wait(1000)
  say Typing(1500)
  say "We have a cool new webinar coming up next week..."
  say Wait(1000)
  say Typing(1500)
  say "It's about creating powerful chatbots in CSML."
  say QuickReply(
    "How cool is it?",
    buttons=[Button("Awesome! 😻"), Button("Wow! 🤩")]
  remember participant = {}
  say "Great! Let's get you registered!"
  goto getInformation

// Get the required information from the user
  say Typing(1000)
  say "What's your first name?"

  do participant.first_name = event
  say Typing(1500)
  say "OK {{participant.first_name}}, and what's your last name?"

  do participant.last_name = event
  say Typing(1500)
  say "Fantastic. Where do you work, {{participant.first_name}}?"

  do = event
  say Typing(1500)
  say "Got it. Last question: what's your email? I'll send you an invite and a reminder before the event starts!"

  do = event

After this, we have gathered the first and last names, email address and company name from our user to register them to a session. If we need more information, we can simply ask for more information!

All we need to do now is send this information to Livestorm. In CSML Studio, you will need to install the Livestorm app, which you can find by searching for the Livestorm integration and installing it using the instructions.

Once this is done, you can use it in your code! There is a sample code example at the bottom of the instructions that you can simply copy, paste and adapt. In our case, you can add a call to registerParticipant in a new step:

  do Fn(
    session_id="SESSION_ID", // Change this with your own session ID!

After this, you just need to thank the user and close the conversation:

  say Typing(1500)
  say "OK {{participant.first_name}}, that's all for me 🤗! You are registered to the webinar!"
  say Wait(500)
  say Typing(1200)
  say "See you there, and until then, check out our docs here:"
  say Url("", text="CSML Documentation", hide_url=true)
  goto end

By adding all these steps together, you have a complete webinar registration chatbot, which you can test on a new Webapp channel, for example:

Sure enough, we can now find the user registered to our session:

We can also find the participant in the People screen:

Going Further

This example is obviously quite simplified. Here are some ideas to make it even better:

  • use the listEvents and listEventSessions methods to list all your upcoming sessions and get your users to register to multiple webinars from the same chatbot
  • validate the inputs: for example, use the event.is_email() method to check for email address validity
  • deploy this chatbot on your website or on Messenger to get more leads for your webinar!