BridgeBot

Overview

BridgeBot is a chatbot that educates people how to respond to conflict online. Through 9 microlessons about digital peacebuilding, BridgeBot aims to help people reflect on why differences occur, feel comfortable engaging with others, and understand how to engage constructively. Role-plays and multimedia help illustrate the concepts in an interactive way. Learn more

Try it out on WhatsApp
My RolesOur Tools
Project manager
Back-end developer
WhatsApp
Turn.io
Pandas

Challenge and Solution

To build the organization’s internal capacity for chatbot development, I led design and development workshops to 1) understand the chatbot development lifecycle and 2) implement those ideas to build BridgeBot. The team came up with many ideas and wrote out engaging flows. However, the chatbot platform necessitated coding in a special Elixir-like syntax, which non-technical team members were not familiar with.

I developed a script to translate conversational copy spreadsheets into that Elixir-like syntax. This led to the following benefits:

  1. decreased deployment time of new flows and copy updates significantly
  2. reduced mistakes when deploying copy updates
  3. allowed the team members more control over the copy without learning Elixir

Below you can see an example of the source material and the code output.

Flow copy

Copy Spreadsheet

Code

  card Row2, then: Row3 do
    text("""
    So I'd like to share a story with you.
    """)
  end

  card Row3, then: Row4 do
    text("""
    I have two really close friends...Malia and Riley.
    """)
  end

  card Row4, then: Row6 do
    response =
      buttons([Row5]) do
        text("""
        One day, they decided to watch a movie🎬 at the cinema.
        They planned for Malia to meet Riley at the junction close to the cinema.🕓
        """)
      end
  end

  card Row6 when response == "menu" or response == "Menu" or response == "MENU" do
    run_stack("ec37fca0-374b-446b-be54-a910096209af")
  end

  card Row6 when response != "menu" and response != "Menu" and response != "MENU", then: Row5 do
    log("Placeholder")
  end
Back

© 2024 Greg Thompson

LinkedIn Substack GitLab GitHub