Skip to content

alexagranov/walkiebot

 
 

Repository files navigation

Walkiebot

Walkiebot is the premier solution for prototyping conversational flows, and visualising what a message will look like in Slack - it features a WYSIWYG editor for creating and editing messages

Table of Content

Some articles we wrote about Walkie:

Quickstart

# Clone this repo
$ git clone [email protected]:FoundersAS/walkiebot.git
# Install packagages
$ yarn
# Run Walkie! (For the first run docker will pull the mongodb image)
$ yarn dev

Now visit http://localhost:8005 for some 🤖💙!

Note:

Walkie uses mongodb as the database, it's the only outside requirement to run walkie in any environment. In any setup explained here mongodb is included. When developing locally with yarn dev docker-compose is used to manage the mongodb, on heroku a free mlabs mongodb addon is provisioned automatically.

In case you want to use authentication you will need to set up a slack application, you can do that here: api.slack.com/apps - JWT is used for authorisation so you'll need to generate a keypair and add the keys as environment variables (more on that in Configuration), but here is a quick link with instructions

Export and import

If you are here as a previous walkie user and you are thinking: "How on earth will I get my data from app.walkiebot.co on to my own walkie instance?" This is the section for you!

Exporting your data

  1. On https://app.walkiebot.co/ - Click the 'export all walkie data' button in the sidebar.
  2. Click the 'Export my data' button and give it a second
  3. Now click the big green button. And a download will start.
  4. You now have your walkie data saved on your computer!

Importing your data

  1. So you have your walkie-data.json file somewhere
  2. On your own Walkie instance, click the 'import from Walkie export'
  3. Click 'Choose file' and locate your walkie-data.json export
  4. Click 'Upload'
  5. You should get a message saying that your bots were imported with a list of links
  6. You can also find all your bots in the bot list in the sidebar

Production

Heroku

Deploy

These environment variables are required with heroku:
(the setup wizard will ask you to fill them out as well)

  • NPM_CONFIG_PRODUCTION when deploying to heroku this should be false so devDepencies are installed
  • HEROKU_APP_NAME used only on heroku, it should be the same value as your heroku app name

Docker

You can use docker-compose, the docker-compose.yml file is set up to build Walkie from the Dockerfile in the project root.

Configuration

If there are some of these variables you do not want to be checked into your repo, then put them in a file called local.json:

{
  "JWT_SECRET": "...",
  "SLACK_CLIENT_SECRET": "..."
}

These are the available environment variables walkie uses:

  • NGROK_SUBDOMAIN only required locally with slack login enabled
  • MONGODB_URI a mongodb uri
  • JWT_PUBLIC You can generate a keypair using the instructions here: https://gist.github.com/ygotthilf/baa58da5c3dd1f69fae9
  • JWT_SECRET For local development keep these files in your local.json file
  • APP_HOST used only locally and for generating some redirection urls related to logging in with slack
  • SLACK_CLIENT_ID if this is not provided the sign in with slack button will not be shown in walkie
  • SLACK_CLIENT_SECRET
  • SLACK_LOGIN_REDIRECT_URL

JWT tokens

Please see this comment for clarification thanks to @alexagranov

Screenshots

Add as many users as you like to your stories for maximum interaction (and possibly confusion!)

The sidebar visualises how your conversation is structured and allows you to create new messages in reaction to others

The message builder help you design Slack messages with a live preview

Export any message to a valid Slack message payload

Contributors

Thank you to all of you who are and have been using and helping improve Walkie!

Walkiebot Footer

License

ISC

About

walkiebot opensource

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 78.5%
  • CSS 20.1%
  • HTML 1.4%