Overview
Sunrise Movement works to build the people and political power to pass a Green New Deal and create millions of good jobs. Our strategy is to recruit young people to join our movement, train them up as leaders, and then mobilize them in mass action to fight for a Green New Deal. With a goal as ambitious as mobilizing every aspect of American society to 100% clean and renewable energy, guaranteeing living-wage jobs for anyone who needs one, and creating a just transition for both workers and frontline communities—all in the next 10 years—we need as many willing volunteers on deck as possible.
How can we activate so many people with a finite number of resources? How can we build an onboarding ramp to our movement with the least amount of friction for new recruits? We know that it can be difficult to know how to get started in organizing in a movement as large as ours. Do you jump into your local hub? Join a local protest? Attend a national training? Hop on the latest phone bank? With so much going on all the time, we have decided to offer a more curated experience for our new members.
One way we help onboard new members at Sunrise is with our Welcome Series. It is a series of emails and texts that welcomes new contacts to Sunrise and guides them through a series of actions that educates new members on our organizing strategies, pushes them to take their first action, and plugs them into their local Sunrise volunteer group.
Our welcome series is a vital part of our movement—we have a short window of time to activate new recruits before they lose interest or get discouraged from joining the movement. Because of this, we rigorously test our emails and texts to reduce friction and improve the experience for new members.
Part of the welcome series is our “welcome text”, the first text message someone receives when they opt in to our SMS program. One day, an organizer came to me with a bit of research he found. This research came from the sales world, an unlikely source for a movement organization, and described a phenomenon in which “firms that tried to contact potential customers within an hour of receiving a query were nearly seven times as likely to qualify the lead...as those that tried to contact the customer even an hour later—and more than 60 times as likely as companies that waited 24 hours or longer” (Read the full article here). The organizer then asked a very simple question:
“Can we get our welcome text time down from a 24-hour window to a 15-minute window?”
At first the request seemed simple enough, but after talking with some colleagues in the progressive data space it appeared that no one (or no one I knew) had managed to crack the 24-hour window! Previously we were using a peer-to-peer texting service, Spoke, and volunteer labor to send welcome texts to new members. Volunteers would spend hours every week manually sending out and responding to welcome texts. However, Strive, a broadcast texting service, recently introduced a new functionality to their service called Automations. With this new feature, we were able to switch off of Spoke and automate our welcome text program, and in the process reduce our welcome text timing from a 24-hour window to a 15-minute window.
Solution
This script lets progressive organizations set up a sync between their EveryAction SMS opt-in data and Strive to send automated welcome texts within any custom timeframe--in our case every 15 minutes.
We make use of two API endpoints: EveryAction’s Changed Entities API for requesting recently modified data and Strive’s API for pushing new contacts directly to a Strive flow.
The script:
Sends a POST request to the EveryAction Changed Entities endpoint to download the VanID, FirstName, LastName, Phone, PhoneOptInStatus, and DateCreated for all contacts that have been modified by the timeframe set by the user, in this case 15 minutes
Checks to see which of the downloaded contacts were created today. The Changed Entities API only works on the DateModified variable, and we need this extra step to further filter the results on the DateCreated variable.
Checks if the contact is opted in to texts. Strive is a mass texting tool, meaning legally contacts must be opted in to your organization’s SMS program to receive texts.
Sends the new, opted in contacts to Strive with the group “EA API Member”.
This triggers Strive’s new API automation and kicks off a Flow.
Strive’s Automation feature is what makes this script possible. This new feature allows us to trigger a Flow when a new member is added via the API. In this case, I have set up my Automation to kick off the Welcome Series Flow when a new member is added under the “EA API Member” group.
And what is that first welcome text you might ask? Our first welcome text is designed to encourage the member to text us back by asking them what got them interested in Sunrise in the first place.
Hey {{firstName | default: 'friend' }} I'm {{organizerFirstName}} with Sunrise. I see that you signed up to receive updates from the movement. I was wondering, what got you interested in Sunrise?
There are some quirks to this system. First, the Changed Entities API returned a date, not a timestamp, for “DateCreated”. This means we could potentially send duplicate new members to Strive and double text them! The good news is that Strive has a built in feature that prohibits any member from being sent the same Flow twice. Second, sometimes the POST request for download stalls out, and I have yet to find a cause or solution to this dilemma.
Results
With this script, we can automatically text new people to our list much faster than we were able to before, very likely increasing our ability to activate new members into taking action with us. As an added benefit, my Texting Manager can spend more of her time cultivating relationships with potential members instead of manually sending texts each day. Finally, this automation has opened the doors for us to better A/B test our welcome text.
Finally, I took on this project in part because I wanted to help out my organizer, but also because I wanted to learn how to do data engineering with Python. This is my first data engineering script, and I know there is room for improvement. If you have ideas for how to make this code better, please get in touch with me because I would love to learn.
This post was loving edited by Jillian Corkin
Commenti