How fasola works
A personal Slack DM to every person on your list, sent from your own account, tracked in one place.What fasola is
You have an ask — comment on a post, react to something, share a link — and 40 to 150 colleagues who could do it. Sending each of them a personal Slack message works far better than one broadcast in a channel, but keeping track of who actually did it is the part that falls apart.
fasola sends those messages one by one from your own Slack account, then watches for the ✅ people put under your DM and shows you who is still outstanding. Nothing marks the message as automated, because nothing about it is: the messages leave from your own signed-in Slack session, in your own browser.
This also means the fasola server never holds your Slack password, token or session. It stores the campaign — the text, the recipients, who is done — and nothing else. Every call to Slack happens in your browser, through the extension.
Before you start
Three things have to be true, once per computer:
- A Chromium browser. Chrome or Vivaldi. Firefox is not supported.
- The fasola extension is installed in that browser — see below.
- You are signed in to Slack in that same browser, in a normal tab — not just in the Slack desktop app. The extension borrows that tab's session; if there is no Slack tab open, it will open one for you.
Installing the extension
Download the extension version 0.2.2
Chrome cannot install a zip by opening it, so there are a few steps. Do them once:
- Unzip the file you just downloaded. You will get a folder. Put it somewhere you will not delete by accident — the extension is loaded from that folder every time your browser starts, so it cannot live in Downloads or the wastebasket.
- Open
chrome://extensions— type it in the address bar. - Turn on Developer mode, the switch in the top right.
- Click Load unpacked and choose the folder you unzipped.
- Come back here and reload the page. The sidebar badge should turn green.
Chrome will show a "disable developer mode extensions" bubble each time it starts. Dismiss it; the extension keeps working. That nag goes away once fasola is published to the Chrome Web Store, which does not change anything else about how you use it.
To update later, download again, unzip over the same folder, then press the
reload arrow on the fasola card in chrome://extensions.
The badge at the bottom of the sidebar tells you where you stand:
- extension: ok — everything is connected, you can send.
- extension: not found — not installed, or installed in a different browser than the one you are reading this in.
- extension: update needed — your copy is older than this server expects. Update it before sending.
You sign in to fasola itself with your organisation Google account.
People and lists
People is your workspace's Slack directory as fasola sees it. You can give someone a nickname here — if Slack says "Katarzyna" but everyone calls her Kasia, set the nickname and every message fasola writes will use it in place of the first name.
Lists are saved groups of people. If you write to the same twenty campaigners every month, make it a list once and pick it as the recipients of each new campaign instead of hunting for the same names again.
Making a campaign
New campaign asks for four things.
Basics — a title (for you, nobody else sees it), the workspace, and an optional deadline.
Message — the text of the DM. The Insert buttons drop in placeholders that are filled in per person as each message goes out:
{first_name}— their first name, or their nickname if you set one.{real_name}— their full name.{post_link}— a link to the channel post, if this campaign started from one.
The preview beside the editor shows the message as one real recipient will receive it, so you can check that the name reads naturally before anything is sent.
Recipients — pick people, or pick a list. A campaign holds at most 200 people. If your ask is bigger than that, split it into two campaigns.
Waiting times — see the next two sections; the defaults are sensible and you can leave them alone.
Saving gives you a draft. Nothing is sent until you press Send on the campaign page.
Campaigns from a channel post
The common case: someone posts "please comment on this" in a channel, some people react, most don't see it. Instead of starting from scratch, tick From a channel post when making the campaign and choose the post.
Two things then happen on their own. {post_link} becomes a link to that post, so
your DM can point at it. And everyone who already engaged with the post starts out done —
the person who wrote it, and everyone who put the ✅ on it. You do not DM people to ask for
something they have already done.
Send DMs after is a grace period: how long after the post goes up before the DMs are worth sending. Three hours by default — long enough for the people who read the channel to get there by themselves. fasola shows you when the window opens; it does not stop you sending earlier.
Sending
Send to pending starts the run. One DM per person, about one per second, in order. The progress line tells you who is being written to and how many are left.
Two rules while it runs:
- Keep the tab open. The sending happens in this browser, not on the server. Closing the tab stops the run.
- Stop is safe. Press Stop and the run halts after the message in flight. Pressing Send to pending again later picks up exactly where it left off — a person who already has their DM is no longer pending, so nobody is written to twice.
fasola stops by itself if something looks wrong: after three failures in a row, or as soon as Slack starts rate-limiting. Both leave the campaign in a state you can resume from once the problem is dealt with. Anyone whose message genuinely failed shows as an error and can be picked up again with Retry errors.
Who counts as done
Someone is done when a ✅ appears under the DM you sent them. That is the whole convention, and it is worth saying in the message itself — "click ✅ when you've done it" — so people know.
Four things can mark a person done, and any one of them is enough:
- You ticked them by hand on the campaign page.
- They wrote the channel post this campaign came from.
- They put the ✅ on that channel post.
- They put the ✅ under their DM.
If someone removes their reaction, they go back to not-done — unless one of the other reasons still holds. A tick you set by hand always wins.
You can change which emoji counts, per campaign, if ✅ is wrong for your ask.
Refreshing. fasola has no way to be notified by Slack; it has to go and look. It looks every five minutes while you have the campaign page open, and skips a turn if the tab is in the background or busy sending. Refresh reactions checks everyone immediately. The line under the buttons tells you when it last managed to check.
Reminders
Remind not-done writes a second message, in the same DM thread, to everyone who is still outstanding at that moment. People who are done are never included — that is the point of the button, and the reason to refresh before using it.
You write the reminder text yourself, and it takes the same {first_name}
placeholders as the original.
Calling the stragglers
For urgent asks, a DM and a reminder are sometimes still not enough. Open call list gives you the people worth phoning: they got their DM, they are not done, and nobody has called them yet.
Call after on the campaign decides how long after their DM a person appears here — three hours by default. It is a suggestion, not a lock.
Refresh contacts pulls phone numbers out of Slack profiles, and where your workspace records it, each person's supervisor and their phone number too. Mark people as called as you work through the list, so that whoever picks it up next does not ring them again.
Exports and finishing up
Export CSV gives you the whole campaign as a spreadsheet — every person, whether they are done, when the DM went out, when they were called. Use it for a report, or to work the list somewhere else.
Close campaign takes it off the default view when the ask has run its course. Closed campaigns are still there under All on the campaigns list, and Reopen brings one back if the ask comes round again.
When something goes wrong
"extension: not found". You are in the wrong browser, or the extension is not installed. It has to be the same browser you are reading this in.
A banner asks you to sign in to Slack. Your Slack session expired. Sign in to Slack in the tab fasola opens, then use the Try again link in the banner — you will not lose your place in the run.
"1 message may or may not have been sent". Slack stopped answering while one message was in flight and fasola genuinely cannot tell whether it arrived. It records nothing rather than guess. Look at that person's DM in Slack, then mark them by hand or send to them again.
Slack is rate-limiting. You have asked Slack for too much too quickly. Wait a few minutes and press Send again; the run resumes where it stopped.
Nothing is refreshing. Only someone who sent DMs in a campaign can refresh it, because the reactions are read through the sender's own Slack session. If a colleague started the campaign, the reaction counts update when they have it open, not when you do.