A bot which locates the closest volunteers to check-in on & run errands for vulnerable members of the community.
Made by Astoria Tech volunteers, for use by the Astoria Mutual Aid Network.
Astoria Mutual Aid Network’s volunteer dispatch works as follows:
- People fill out a form to request help (https://astoriamutualaid.com/help) which feeds into Airtable
- The bot (a node.js container) watches the Airtable sheet for new entries (every 15 seconds)
- When a new entry is found, the request address is cross-referenced against the volunteer list to find the 10 closest volunteers who can fulfill the need, and posts them to a private dispatch channel on Slack (where we have trained dispatch volunteers coordinating with the field volunteers).
- Make
- Docker & Docker Compose
Get the integration points setup:
- an Airtable account - sign up for a free account, then fill out this form to get a year free as a relief group: https://airtable.com/shr2yzaeJmeuhbyrD
- a free MapQuest dev account - https://developer.mapquest.com/plan_purchase/steps/business_edition/business_edition_free/register
- a dedicated private Slack channel for the bot to post to
And grab the API keys from each (and channel ID for Slack), and put them into the following environment variables:
AIRTABLE_API_KEYAIRTABLE_BASE_ID- go to the Airtable API page, click your Volunteer Dispatch base, and the ID is thereAIRTABLE_REQUESTS_VIEW_URL- go to the Grid View of the Requests table in your Volunteer Dispatch base, and copy the URL (e.g.https://airtable.com/tblMSgCqcFR404rTo/viwgqR1sKrOdmB0dn)AIRTABLE_VOLUNTEERS_VIEW_URL- go to the Grid View of the Volunteers table in your Volunteer Dispatch base, and copy the URL (e.g.https://airtable.com/tbl9xI8U5heH4EoGX/viwp51zSgXEicB3wB)MAPQUEST_KEYSLACK_XOXB- Slack bot token. To setup: create an app, add the OAuthchat:writebot scope, install the app to a channel, and grab the bot tokenSLACK_SECRET- Slack app signing secret. Found in the 'Basic Information' section of your app on api.slack.com/appsSLACK_CHANNEL_ID- Slack channel ID (e.g.C0107MVRF08)
- Clone this repo and navigate to the project root in your terminal.
- Set the environment variables documented above.
- Run
make developand the bot will start running, processing records every 15 seconds.
We store our data on Airtable. You can see the data and make your own copy with a single click here: https://airtable.com/universe/expOp8DfPcmAPTSOz/volunteer-dispatch
We use a tool called Shipyard to deploy the bot. In short, it compiles the Docker Compose file to Kubernetes manifests and deploys to a managed cluster.
Shipyard will host the bot for free for any mutual aid or relief organizations. Send a message to [email protected] and they'll set you up with an account.
