Skip to content
This repository was archived by the owner on May 18, 2019. It is now read-only.
Patrick Connolly edited this page Jun 18, 2017 · 11 revisions

We use a chatbot to make certain obscure tasks more accessible to every member of our Slack team. Our chatbot's name is halpy. You can also read more about our chatbot philosophy.

Talking to halpy

You can talk to halpy in a few ways:

  1. Publicly in channel: halpy <command>
    • This is best for when others might benefit from seeing the command, via teaching either the what or the how: The what being "the information halpy will reply with", and the how being "how we got halpy to do it". If you think either of those might be useful, please do feel free to address halpy publicly! Yay teaching!
  2. Direct message. This can be helpful if you need info, but don't think it would contribute to group discussion. This can be done in two ways:
    1. within direct message pane: <command>
      • when you're already talking to halpy, no need to address zir -- just use the commands directly!
    2. from a public channel: `/msg halpy
      • This saves you having to leave the channel.

Note: For the purposes of this document, we'll assume you're talking to halpy publicly in channel.

Like any Slack user, Halpy can see all conversations, but mostly knows how to respond to specific requests addressed to him, known as commands. He may also have other features that allow him to leap into action without an explicit command. These can include:

  • notifications of external events, like an update to a Freedom of Information request, or a submission of a contact form.
  • adding helpful context to something he overhears in a chat room, like a link shared.

Features

Help

Halpy has a lightweight built-in "help" feature, that lists a one-liner for each command he can do.

Run it with halpy help.

You can filter results with halpy help <some filter>

Factoids

Factoids are little pieces of information that halpy can file away under a specific heading. These bits of information can be anything: links, acronyms, jargon, or whatever. Halpy can recall the information when he sees a message in chat in the format !<heading>.

You can see all the commands for managing factoids via: @halpy help factoid

Sample Usage:

alice: @halpy learn edgi protocol = https://docs.google.com/document/d/1ji0KcSpBvaxceFAsC6uMsX9A-utiyTVPQUow9v0Oq4o/edit
halpy: OK, edgi protocol is now https://docs.google.com/document/d/1ji0KcSpBvaxceFAsC6uMsX9A-utiyTVPQUow9v0Oq4o/edit
alice: @halpy alias protocol = edgi protocol
halpy: OK, aliased protocol to edgi protocol
alice: @halpy search protocol
halpy: Matched the following factoids: *!edgi protocol*, *!protocol*

...

alice: We've submitted some changes to the EDGI protocol, and it would be really nice to get some feedback before SC
newbob: Great! Where do I find that? And what's SC stand for?
alice: !protocol
halpy: https://docs.google.com/document/d/1ji0KcSpBvaxceFAsC6uMsX9A-utiyTVPQUow9v0Oq4o/edit
alice: !sc
halpy: steering committee or sierra club
newbob: oh! thanks!

Factoids are little pieces of information that halpy keeps in zir brain. These bits of information can be anything: links, acronyms, jargon, or whatever. Each factoid gets saved with a key that can be used to retrieve it.

RSS

  • per-channel
  • anyone can add or remove
  • works great for Google Alerts (which can be created as RSS feeds)
  • mention :spam: emoji as an idea for a convention to tersely express thought that an auto-posted message is too noisy
Clone this wiki locally