Skip to content
This repository has been archived by the owner on May 18, 2019. It is now read-only.
Patrick Connolly edited this page Apr 7, 2018 · 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. Please feel free to 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 <command>
      • 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>.

To explore commands: @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
alice: 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!

RSS

RSS is a web standard for "feeds" of information. It was designed for blogs and news sites, but RSS feeds are often provided for search results or other services that use lists. For example, Google Alerts can be set up to generate an RSS feed. There are also tools that can turn website changes into RSS feeds.

Halpy has the ability to watch RSS feeds, and drop a notification in chat when new items are added.

To explore commands: @halpy help rss

Tips

  • watch lists are per-channel
  • anyone can add/remove RSS feeds from watch list
  • works particularly well for Google Alerts!
  • Tag a post with the :spam: emoji if you find auto-posted items to be too noisy.

Zoom Meetings

We use Zoom to host most meetings. Compared to Google Hangouts, this allows us both to have more participants, and also allow people to easily call in by phone.

To make hosting Zoom meetings easier, we've added a command. Your meetings can be recorded, if you prefer.

To explore commands: @halpy help zoom

Clone this wiki locally