The Robot of the Resistance
Where Resistbot has gone in its first 180 days, and what’s next.
On its 180th day online, Resistbot crossed the 1,000,000 user milestone. Until now I’ve written little about it. The flurry of press coverage, most of it unintentional, just after launch mostly told the what of the story with little of the why. There’s a lot more to the ‘bot than faxes, and there’s a team of people that have been working to make it much more every single day since launch.
The Problem: Voices Weren’t Getting Through
Resistbot itself was born of a simple frustration: Eric Ries, who literally wrote the book on the lean startup, couldn’t reach his officials by phone. Not surprising—there’s two Senators for 38 million Californians. Jon Tester (Montana) has the same number of Legislative Correspondents as Barbara Boxer (California). House offices are capped at 18 staffers, usually leaving about 8–10 in D.C and spreading the remainder to local offices. If the voices of the resistance are constricted into a few staffers over a business day, there’s no way we’re going to all be heard, and the lobbyists in D.C. will take our places instead. I’ve been building civic technology for about 7 years, so once I recovered from the election, and looked around, having lost my belief in apps, I thought about something lighter-weight and easier—a little chat bot to nudge folks to make calls and take actions. I was fortunate to talk to my friend Catherine Bracy at just the right time. She pointed me to Eric who told her he was building a chat bot himself. He found every other app or website so difficult and slow to use that he actually started faxing, and thought about building a bot around it. We reconciled our visions and things moved quickly. Twilio offered support and our first volunteers, and Eric designed the prototype: a bot that would behave like a game, introducing users to civic engagement slowly, where first you learn the basics, and then build on those to become more powerful over time.
The hope of designing it this way was so more people would actually fall in love with the product, and continue to use it. There’s been no lack of tools to contact Congress, but did any become habits or popular enough among ordinary citizens? We didn’t think so, so we wanted to try something different based on product principles that had proven effective in achieving both of these in other types of products.
The Minimum Viable Product
The first conversation with the bot produced just a fax to both Senators: it grabbed a name, zip, the message, and it was done in a minute or two. Subsequent days would ask for a user’s full address in order to write the U.S. House as well, then allow for individual message targeting, and so forth. Simplicity on day one was crucial, and balancing how much we were asking of people vs. the benefit they were receiving. Asking for too much from users or having too many complex options would have turned people off before they got through anything, but a visual artifact of a real fax in 2 minutes was delightful for the user, and they understood that they had created something real with the bot. Folks wanted to show these off so much they went through the trouble of taking their fax images, erasing their information, and posting to social media, without us prompting or making it easy.
Without a great first time user experience, that was both simple and rewarding, nothing else we wanted to accomplish would happen. A lot of the time, folks don’t know who to write, or who their officials are. And even if you’re sophisticated enough to know these things, legislation often goes through a reconciliation process where it’s considered by both chambers. If you wrote your Senators, did you contact your representative about the corresponding house bill, too? Why should this matter? You care about an issue, and you should be able to express this clearly and plainly to the people you’re paying to represent your interests. It should not be difficult to do.
The goal of Resistbot was never to send as many faxes as possible or to spam Congress, although we did want citizens to be heard and listened to, it was to get people engaged on a regular basis. Whether writing, or another civic action. I wrote this as our initial positioning statement:
For ordinary citizens who are frustrated with their elected officials, Resistbot is a chat bot that provides a simple and effective way to lobby. Unlike similar tools, we operate over SMS, there’s no app to download or web site to fumble with, and it’s as easy as texting a friend.
After a few weeks of development, we launched. We built something buggy, but workable. Would anyone care? Would folks come back the next day? Would they provide an address to write the U.S. House? Would they tell their friends about it? Those were the questions we were asking. We weren’t trying to boil the ocean, we were hoping to learn from a reasonable sample of users—maybe a few hundred or a thousand. We posted on Product Hunt, and I wrote a journalist. That’s all.
Coping with Hypergrowth
What followed was a deluge. The articles and celebrity tweets came one after another in March, driving more and more traffic. Given the bot worked over SMS, and not a free chat platform, this growth came at a cost—every text message sent to and from the bot cost money, and it added up. We ended up handling 11 million text messages in 22 days. We threw up a Paypal page about 10 days in, but it didn’t look like it would be nearly enough. On March 23 when the health care repeal bill came up for a vote in the House, we just about died with 100,000 new users over two days and a corresponding spike in messages. Eric and I started dialing for dollars — I sent a cold email to Mark Cuban in the middle of the night — and more Amazon instances were spun up to cope. We made it out the other side, thanks to our users. We now have over 24,000 individual donors, who’ve given an average of $15 each. Our donation volume scaled right with the use of the bot, with prompts after every few actions or when we’re under heavy load. Invoice billing saved us early on. But learning from a small sample size took a back seat to survival, scalability, and support before long.
Even when the novelty wore off for the press, we continued to grow. We were still adding users every minute during the day. As it turned out, a lot of word of mouth was happening without articles: in Facebook posts and groups, on Twitter, through Indivisible chapters and other resistance groups like TWW, and actual word of mouth—someone stopped former Missouri Secretary of State Jason Kandar on the street and showed him.
With our newfound size, the thinking turned to how can we use this to have a real impact on health care given the opportunity was right in front of us, driven especially by Eric. All of the volunteers knew people that were fearful of losing coverage and protections, and for many, it was life or death — we pushed hard.
How Resistbot users responded to Obamacare repeal attempts
For us it wasn’t a partisan issue, it was an issue of humanity and defending the most vulnerable in the United States. A theme that has come back again and again under this administration.
The larger the user base got, the larger the spikes were when Trump did something exceptionally stupid. The day Comey was fired we signed up over 87,000 new users. When Politico leaked that Trump was going to end the DACA program, over 220,000 users signed up and wrote their Senators, tipping us over 1,200,000 users. The more users we had, the more the word-of-mouth multiplied for those moments where an issue is top-of-mind.
New Ways to Resist Were Quickly Added
The bot stopped being just for faxing within weeks of launch. Postal mail and phone calls were added—you can just tell the bot who you want to talk to and it will play secretary for you. Recently we’ve been testing a new Congressional messaging protocol for when officials unplug their faxes, as many have done in response to our volume. We also launched on Messenger, added hand drawn signatures, the ability to write state governors, the ability to submit letters to the editor of your local paper, town hall lookup, and dabbled with an Alexa recipe, all while continuing to learn and improve the user experience.
We’ve also conducted a lot of experiments: we made three days worth of hand deliveries in the U.S. Capitol, alerted hundreds of thousands of voters in key states when health care votes were coming up, alerted folks ahead of special elections in California, Kansas, Georgia and North Carolina, alerted D.C. residents about various protests and actions, did an alert for S.J. Res 34, and others. We’re also helping the Charlottesville-to-D.C. march organizers coordinate on-the-ground volunteers this month.
Bot Love and Growing Pains
I have been building and around products in Silicon Valley for ten years, Mint for the first few and civic products for the other seven, and I’ve never seen anything like this. The bot was getting enough marriage proposals that we built a response for it into our feedback keyword. This is a product that people love.
It was also incredibly buggy, with thousands of support messages flooding my inbox early on from one end, and polite but frustrated Congressional staffers on the other when things didn’t quite go the way they were supposed to. But with every user that texted feedback or sent a support email or text, and with every chat log, we got smarter, and made the bot tougher. As a designer, one amazing thing about a chat bot is: the feedback mechanism is the product. You don’t need any mouse tracking or metrics or contexual inquiry to know what the users are trying to do, the logs are all right there, and our customer feedback and errors were piped into our Slack team so the volunteers could react instantly, and iterate quickly. Chat bots are maligned by the design community, deservedly as many I’ve tried are more in the way than anything, but writing officials is so close the kind of texting people are used to, that it seems to work. Our users are moms waiting to pick up their kids from school, grandparents who text but don’t use computers, people riding the bus into work, and the list goes on.
Our organization is virtual, and all volunteer. Our Slack team sits at 123 today, and what the technical team has been able to do, and how fast they’ve been able to do it, blows my mind—and all in their free time. It has totally redefined both what “mission-driven” means to me, and what is possible.
What’s Next in 2017
The core of the bot will continue to be effective advocacy. Trump continues to show us his autocratic tendencies in his erosion of norms, use of the executive branch, and by attacking the judiciary. We can’t impact those two branches as easily, but we can lobby our representatives. So far we’ve delivered over 4.7 million pages of correspondence to Congress between faxes, emails, and letters. Our next major update will see us shift more of the messaging load to the new Congressional email system, and add support for the White House, state legislatures—as voting and human rights are under attack at the state level—and large municipalities. I’ve talked extensively now with Congressional staffers from several offices, as well as the Congressional Management Foundation about how to best work with Congress and how our users can best be heard, and those changes are rolling out.
Perhaps more importantly, we will be working with any resistance groups that are interested in having an outpost on the bot. If you have an organization, I want to hear from you. Writing a letter is the first rung of our ladder, but if the user has time to volunteer and do more, we want to help her find the right group to join, like knocking on doors for Swingleft— our first such integration soon to launch, where users can text a keyword to be assigned their adopted swing district, and learn how to help.
Allowing for constituent town halls, when town halls aren’t being held, is another feature we’re really excited about. This will be our first attempt at peer-to-peer organizing. First though we’re looking at expanding our event system beyond town halls to party committee meetings, and other key institutional forms of engagement that ordinary citizens know little about—and should engage in to make a difference. Today you can text townhall at the bot but before long, if you want, we can nudge you if there’s an important event nearby. I often describe the experience vision of the bot as a personalized lobbyist: you can pick up the phone or email her when you want something done in Congress, and a good one will nudge you if there’s something you should know about. We have a ways to go to get there.
Looking to 2018
In late 2017 and into 2018, attention will turn towards empowering our users to register themselves and their friends to vote, to pledge and gather pledges to vote, knowing where and how to vote, and to be sure we’re all heard at the polls. Off year elections have notoriously low turnout, and our goal will be to fix that by continuing to grow and making sure every user is counted at the ballot box. I’m excited to work with my friend Debra Cleaver at Vote.org on this piece very soon, as I remember very well what Michael Moore asked us to do just over a year ago:
Add a name to [your list] every single day between now and November 8th until you have 50 people — 50 names in 90 days. Focus on nonvoters. Then, on November 7th and 8th, call, text and/or email every one of them and remind them to vote. Offer them a ride. Offer them lunch. Offer to watch the kids. Offer to mow their lawn. Plan a get-together or a party for everyone after going to vote. You must remind even those people who you think don’t need reminding. This election isn’t about you voting — it’s about you getting 50 others to vote.
How You Can Help
Donate, and make it recurring if you can, or volunteer.
Without these two ingredients, we can’t continue to deliver messages and operate. 100% of our funding goes to infrastructure costs, and there’s always more code and tests to write, letters to the editor to submit, QA, data science, design, policy writing, social media, and other things to do!
If you’re an organizer, write me, especially if you have an organization with an API or a means for our system to talk to yours. We have 1.2 million users that are hungry for meaningful actions to take and great organizers like you to meet. I welcome your feedback and criticism, and am excited to continue providing weapons to the resistance.
If you can’t do any of that, just sign up! Text resist to 50409, or to Resistbot on Facebook.
Support the ’bot!
Grassroots donors are all that keep the ’bot online for the organizers that need us. Please give if you can.Give MonthlyDonate OnceSubscribe to our Pod