Pre-Go-Live Setup Checklist
Complete every item below before running acceptance tests. Your progress is saved automatically in this browser.
Airtable
Cal.com
OpenSign
Granola
Critical Mentions
Slack
Work through each test below. Expand a card, follow the steps, mark each one done, then record your verdict.
When you're done with all five, enter your name and submit.
During POC: SMS messages are logged but not actually sent to phones. All Slack notifications start with [POC]. Both are expected.
- 1Open cal.com/cap-storytelling/intake in a browser.
- 2Book a time slot using a test name (e.g., "Acceptance Test Booking") and any email address.
- 3Complete the booking through to the confirmation page.
- 4Wait up to 60 seconds, then check Airtable → Sourcing Pipeline for the new record.
- 5Check #storytelling-ops Slack for a [POC] notification about the booking.
[POC] 📅 New intake booking: Acceptance Test Booking
Scheduled: 2026-06-10T14:00:00Z
Airtable Record: recXXXXXXXX- 1In OpenSign, send your release form template to a test email you control. Note the document ID.
- 2Wait 60 seconds. Check Airtable → Storytellers: the matching record's Release Status should be "sent".
- 3Open the email, click the OpenSign signing link, and complete the signature.
- 4Wait 60 seconds. Check Airtable: Release Status = "signed", Has Signed Release = checked.
- 5For the SMS follow-up test: ask Shar to manually trigger the follow-up check against a record with a sent date older than 3 days.
- 1Start a Zoom or Google Meet call with Granola running. (A call with yourself on two devices works fine.)
- 2Speak a few sentences about a fictional healthcare or housing story. Don't include real personal info.
- 3End the call and wait 1–2 minutes for Granola to produce its summary.
- 4Finalize/save the summary in Granola and confirm the file appears in the designated Google Drive folder.
- 5Wait 2 minutes. Check Airtable → Storytellers for a new record with the Intake Notes Drive URL filled in.
- 1Open Critical Mentions and find a recent result (past 24 hours) that looks like a good storyteller lead. Note the headline.
- 2Ask Shar to trigger a manual RSS poll right now (rather than waiting for the next hourly run).
- 3Wait 2–3 minutes, then check Airtable → Sourcing Pipeline for new records with Lead Source = "critical_mentions".
- 4Check #storytelling-ops Slack for a [POC] notification showing how many leads were added.
- 1Open Airtable → PII Review Queue.
- 2If there's a record with Review Status = "pending" (from Test 3 or earlier), open it. Otherwise ask Shar to create a test record.
- 3Read the "Raw Content Summary" field — it describes what was flagged without showing the actual sensitive text.
- 4Change the Review Status to "approved", "redacted", or "discarded".
Results Summary
| Test | Status | Notes |
|---|---|---|
| Test 1 — Cal.com | Pending | — |
| Test 2 — OpenSign | Pending | — |
| Test 3 — Granola | Pending | — |
| Test 4 — Critical Mentions | Pending | — |
| Test 5 — PII Review Queue | Pending | — |
Storytelling Program Automation — Stories Team Guide
What this covers: What to set up before go-live, how to seed the database with initial data, and how to confirm that each automation is working correctly.
No technical background needed. If something does not go as described, see Something Looks Wrong at the bottom.
What the System Does
The automation stack handles four things that the Stories team currently does by hand:
- Cal.com bookings create database records automatically. When a prospective storyteller books an intake interview through Cal.com, a new record appears in Airtable immediately — no manual entry needed.
- OpenSign release forms are tracked automatically, with SMS reminders. When you send a release form, the system watches for it to be signed. If it is not signed within three days, the system automatically texts the storyteller a reminder. When it is signed, the record updates instantly.
- Granola interview notes are processed and stored automatically. After you finish an intake interview, Granola saves your notes to a designated Google Drive folder. The system picks them up, checks them for sensitive information, and creates an Airtable record with the Drive link attached — without you having to copy anything.
- Critical Mentions surfaces new storyteller leads automatically. The system checks your Critical Mentions keyword feeds every hour. Relevant mentions are analyzed by AI and high- and medium-potential leads are added to Airtable's sourcing pipeline, with a summary posted to Slack.
All four automations run on their own once set up. The Stories team manages the Airtable database — the automation fills it.
Before Go-Live: Your Setup Checklist
The following items are yours to complete before acceptance testing begins.
Airtable
- Confirm you have been added as a user on the Team plan. You should receive an email invitation from Airtable.
- Confirm you can see the base called "Storytelling Program" after accepting the invitation.
- Familiarize yourself with the nine tables: Storytellers, Sourcing Pipeline, Vetting Log, Partner Requests, Press Pipeline, Products & Lands, Retention Check-ins, PII Review Queue, and Config.
- Set up the PII approval automation — when a PII Review Queue record is approved, Airtable should automatically create a Storyteller stub. Steps below.
PII Approval Automation — Setup Steps
This is a one-time configuration inside Airtable. It takes about five minutes.
- In the Storytelling Program base, click Automations in the top toolbar.
- Click + New automation.
- Set the trigger to "When a record matches conditions", table: PII Review Queue, condition: Review Status is approved.
- Add action: "Create record", table: Storytellers. Map fields:
- Intake Notes Drive URL → Source Identifier (the Drive file ID from the queue record)
- Vetting Status → set to
pending - Release Status → set to
unsigned
- Optionally add a second action: "Update record" on the PII Review Queue record — set Reviewed At to the current time.
- Name the automation "PII Approved → Create Storyteller" and turn it on.
After approval, the new Storyteller stub will appear in seconds. Open it and fill in the storyteller's name, phone, issue areas, and other details from the Granola notes in Drive.
Cal.com
- Create or confirm the intake interview event type at
cal.com/cap-storytelling/intake— this is the link you will send to prospective storytellers. - Confirm with Shar that the Cal.com webhook is connected and active.
OpenSign
- Create your standard release form template in OpenSign — the document you send every storyteller before they can be used in any external capacity.
- Send a test document to yourself to confirm the account is active and delivery works.
- Confirm with Shar that the OpenSign webhook is connected and active.
Granola
- Install Granola on the computer(s) the Stories team uses for intake interviews.
- Configure Granola to save notes to the designated Google Drive folder. In Granola settings, look for "Save to Google Drive" and point it to that folder.
- Make sure everyone knows to inform storytellers at the start of every call that it is being recorded and transcribed for internal use only. This is required.
Critical Mentions
- Build and save your keyword searches in Critical Mentions — these should cover the issue areas and geographic terms most relevant to the storyteller program.
- Confirm with Shar that your RSS feeds are connected to the system.
Slack
- Confirm you are in #storytelling-ops. This is where all system activity notifications will appear.
- Ping Shar if the channel does not exist — they will create it.
Seeding the Database
Already done. All storyteller records from the Stories team's existing Airtable tables have been synced into this base as of June 6, 2026. You do not need to add initial records manually — your real data is already here.
Going forward — adding new records
For any new storyteller who comes in outside of the automated flows, just create a record directly in Airtable:
- Open Airtable and go to the Storytellers table.
- Click the + at the bottom of the table to add a new row.
- Fill in at minimum: first name, last name, phone number (in the format
+12025551234), state, issue areas, and set SMS opt-in to checked. - Set Release Status to
unsignedand Vetting Status topending.
The automated flows (Cal.com, Granola, Critical Mentions) will continue adding new records on their own — manual entry is only needed for one-off additions.
Acceptance Testing
Run these tests in order. Each test tells you exactly what to do, what you should see if it is working, and what to note if it is not.
During POC testing: Text messages will not actually be delivered to phones — they will appear as log entries. Slack messages will appear with a [POC] label. This is intentional and expected.
Test 1 — Cal.com Intake Booking
What this tests: When a prospective storyteller books an intake interview, a new record automatically appears in Airtable and a Slack notification fires.
Steps:
- Open
cal.com/cap-storytelling/intakein a browser. - Book a time slot using a test name (e.g., "Acceptance Test Booking") and a real or fake email address.
- Complete the booking all the way through to the confirmation page.
What you should see within 60 seconds:
- In Airtable → Sourcing Pipeline: a new record with Lead Source =
cal.com, the name you used, and the scheduled time filled in. - In #storytelling-ops Slack: a message like
[POC] 📅 New intake booking: Acceptance Test Bookingfollowed by the scheduled time and Airtable record ID on separate lines.
What to note if it does not work:
- Screenshot the Cal.com confirmation page.
- Note the exact time you completed the booking.
- Check whether the record appeared in Airtable at all — even without the Slack notification.
Test 2 — OpenSign Release Form
What this tests: When you send a release form, Airtable updates. When it is signed, the record updates again. If it is not signed within three days, an SMS reminder fires.
Part A — Form sent:
- In Airtable, find one of the test storyteller records you created during seeding.
- In OpenSign, send your standard release form to a test email address you control.
- Note the document ID shown in OpenSign after sending.
What you should see within 60 seconds:
- In Airtable → Storytellers: the record's Release Status changes to
sentand the OpenSign Document ID field is populated. - In #storytelling-ops Slack:
[POC] Release form sent: [name].
Part B — Form signed:
- Open the email inbox you sent the test form to.
- Open the OpenSign signing link and sign the document.
What you should see within 60 seconds:
- In Airtable → Storytellers: Release Status changes to
signedand Has Signed Release is now checked. - In #storytelling-ops Slack:
[POC] Release form signed: [name].
Part C — SMS reminder (3-day follow-up):
Ask Shar to trigger the follow-up check manually against a record with Release Status = sent and a sent date older than three days.
What you should see:
- In #storytelling-ops Slack:
[POC] Release form follow-up reminders sent: 1. - No real SMS is sent in POC mode — that is expected.
Test 3 — Granola Intake Notes
What this tests: After a Granola-captured interview, notes saved to the designated Drive folder automatically become an Airtable record.
- Start a Zoom or Google Meet call with Granola running in the background. (A call with yourself on two devices is fine.)
- Speak a few sentences — anything will do, but do not include real personal information.
- End the call and wait 1–2 minutes for Granola to produce its summary.
- Review the summary in Granola and click to finalize/save it. Confirm the file appears in the designated Google Drive folder.
- Wait 2 minutes. Check Airtable → Storytellers for a new record with the Intake Notes Drive URL field populated.
What you should see:
- New record in Airtable Storytellers with Intake Notes Drive URL filled in.
- In #storytelling-ops Slack:
[POC] New intake notes processed: [filename].
What if content is flagged for PII review:
- In Airtable → PII Review Queue: a new record with Review Status =
pending. - In #storytelling-ops Slack:
[POC] ⚠️ PII review required: [filename].
This is the system working correctly. Open the PII Review Queue record, review what was flagged, and set the status to approved or discarded.
Test 4 — Critical Mentions Lead Sourcing
What this tests: The system polls your Critical Mentions feeds every hour, classifies mentions with AI, and adds high- and medium-potential leads to Airtable.
- In Critical Mentions, identify a recent result (from the past 24 hours) that looks like a good storyteller lead. Note the headline.
- Ask Shar to manually trigger one poll cycle right now.
- Wait 2–3 minutes, then check Airtable → Sourcing Pipeline for new records with Lead Source =
critical_mentions. - Check #storytelling-ops Slack for a [POC] notification showing how many leads were added.
What you should see:
- New records in Sourcing Pipeline with Lead Source =
critical_mentions, an Issue Area, and a Potential Score (high or medium). - In Slack:
[POC] X new lead(s) added from Critical Mentions.
If the item was scored low: It will not appear in Airtable — that is correct behavior. Note the headline and flag it so the scoring can be tuned.
Test 5 — PII Review Queue
What this tests: The Stories team's ability to review and resolve flagged content.
- Open Airtable → PII Review Queue.
- If there are records with Review Status =
pending(from Test 3 or otherwise), open one. Otherwise ask Shar to create a test record. - Read the Raw Content Summary field — this describes what was flagged, not the actual sensitive content.
- Change the Review Status field to one of:
approved— the content is fine to useredacted— the content had something removeddiscarded— do not use this content
What you should see: The record updates immediately. If you set the status to approved, an Airtable automation creates a new stub record in the Storytellers table within seconds — you then fill in the name, phone, and issue areas from the Drive notes. No automation fires for redacted or discarded.
Acceptance Sign-Off
For each test, record the following and share the results with Shar:
| Test | Did it work? | Notes / What you saw |
|---|---|---|
| Test 1 — Cal.com intake | Pass / Fail / Partial | |
| Test 2A — OpenSign sent | Pass / Fail / Partial | |
| Test 2B — OpenSign signed | Pass / Fail / Partial | |
| Test 2C — SMS follow-up | Pass / Fail / Partial | |
| Test 3 — Granola notes | Pass / Fail / Partial | |
| Test 4 — Critical Mentions leads | Pass / Fail / Partial | |
| Test 5 — PII review queue | Pass / Fail / Partial |
Any Fail or Partial results will be looked into before go-live.
Something Looks Wrong
Who to contact: Reach out in #storytelling-tech on Slack.
What to include:
- Which test step you were on
- The exact time you performed the action
- A screenshot of what you expected to see
- A screenshot of what you actually saw
Things that are not errors:
- Slack messages prefixed with
[POC]— intentional during POC. - No SMS received on a phone — SMS is logged only in POC mode.
- A delay of up to 60 seconds before records appear in Airtable — normal.
- No new Critical Mentions leads — correct if there are no relevant new mentions in the feed.
Things that are actual errors:
- No Airtable record after more than 5 minutes.
- No Slack notification after more than 5 minutes.
- An error message appearing in Airtable or Slack.
- Granola notes not appearing in the Drive folder after 5 minutes.
Airtable Tables
| Table | What it's for | Filled by |
|---|---|---|
| Storytellers | Master record for every storyteller — bio, demographics, district, vetting and release status, contact info | Automation + staff |
| Sourcing Pipeline | Incoming leads before they become storytellers — Cal.com bookings, Critical Mentions hits, manual referrals | Automation + staff |
| Vetting Log | Record of every vetting check — LexisNexis, social media review, findings, outcome | Staff |
| Partner Requests | Inbound requests from partner orgs for storyteller matches — issue area, district, media tier, deadline | Staff |
| Press Pipeline | Active press pitches — outlet, reporter, pitch status, interview date, media prep links | Staff |
| Products & Lands | Completed placements — publication, date, URL, content type, audience reach | Staff |
| Retention Check-ins | Scheduled check-ins to keep storytellers engaged — due date, status, updated issue areas | Automation + staff |
| PII Review Queue | Interview notes flagged by Comprehend for sensitive content — held here until staff approves, redacts, or discards | Automation; resolved by staff |
| Config | System-level settings — used by automations, not for day-to-day editing | Tech |
Slack Channels
- New Cal.com intake booking
- Release form sent / signed
- Release form follow-up reminders sent
- Granola notes processed
- ⚠️ PII review required
- New Critical Mentions leads added
- Inbound SMS from a storyteller
- Lambda errors
- Cron job failures
- API error rate alerts
Automations at a Glance
Key Status Values
unsigned — not yet sent
sent — awaiting signature
signed — complete
expired — lapsed, resend needed
pending — not yet vetted
approved — cleared
flagged — issue found
hold — paused, check back
new — just arrived
in_outreach — contacted
no_response — no reply yet
converted — became storyteller
declined — passed
pending — awaiting staff review
approved — ok to use; auto-creates storyteller
redacted — used with edits
discarded — do not use
Tools & What They Do
Use Cases
1 — From Article to Airtable
Critical Mentions · AI Scoring · AirtableMaria is a housing advocate in Phoenix who shares her story about a proposed HUD rule change in a local news article. Critical Mentions picks up the article at 9 AM on a Tuesday. By 9:05, Claude has read the full piece, scored Maria as a high-potential lead, tagged her under the Housing issue area, and written her into the Sourcing Pipeline in Airtable — headline, article URL, rationale, and all. A Slack notification lands in #storytelling-ops.
No one on the Stories team was monitoring the news at 9 AM. No one had to. When they open Slack mid-morning, Maria is already there waiting for outreach.
Time between article publication and lead in Airtable: five minutes. Staff time required: zero.
2 — The Booking That Created Its Own Record
Cal.com · Airtable · SlackA team member reaches out to Maria, shares a Cal.com link, and asks her to book a 30-minute intake interview. Maria picks a slot for Thursday at 2 PM. The moment she clicks Confirm, a webhook fires to the system. Within seconds, a new Sourcing Pipeline record appears in Airtable with Maria's name, email, and scheduled time pre-filled. A Slack notification confirms the booking.
The team member never opens Airtable to enter anything. They simply show up to the Thursday call prepared — the record is already there.
Manual data entry for booking confirmation: none. The calendar and the database stay in sync automatically.
3 — The Interview That Wrote Itself
Granola · Google Drive · Comprehend · AirtableThursday's call with Maria runs on Granola in the background. The team member focuses on the conversation — Granola handles the rest. When the call ends, Granola generates a structured summary and saves it to the designated Google Drive folder. The system picks it up within two minutes.
AWS Comprehend scans the notes for sensitive information. The content is clean. The system creates a Storytellers record in Airtable, attaches the Drive link, and posts a Slack confirmation. By the time the team member closes their laptop after the call, Maria has a complete intake record — notes, Drive link, and all — waiting for review.
Time spent copying notes from Granola into Airtable: zero. The system moves the information so the team doesn't have to.
4 — The Flag That Protected Everyone
Granola · Comprehend · PII Review Queue · AirtableA team member finishes an intake call with James, a Medicaid enrollee in rural Georgia. The conversation was candid — James shared details about a family member's diagnosis, a Social Security number mentioned in passing, and a home address. Granola saves the notes to Google Drive as usual. The system picks them up within two minutes.
This time, AWS Comprehend flags the content: names, a government ID number, and a street address detected. Instead of writing the notes into Airtable, the system holds them. It creates a record in the PII Review Queue with Review Status set to pending, a plain-language summary of what was flagged (entity types, not the sensitive values themselves), and posts a ⚠️ alert to #storytelling-ops: "PII review required: James intake call."
A team member opens the queue record, reads the summary, and decides the content is fine to use — James had consented and the details are relevant. They set Review Status to approved. Airtable's automation fires instantly, creating a storyteller stub for James. The team fills in his contact details and the intake process continues as normal.
Sensitive content never reaches Airtable or AI inputs without a human seeing it first. The system stops automatically — the team decides what happens next.
5 — The Unsigned Release
OpenSign · SMS · AirtableAfter the interview, a team member sends Maria a standard release form through OpenSign. The system logs the send, updates her Release Status to sent, and stamps the date. Life gets busy. Maria means to sign it but forgets.
Three days later, at 9 AM, the system runs its daily follow-up check. It finds Maria's record: release sent, unsigned, three days ago. It sends her a text reminder automatically — no staff action required. Maria signs that afternoon. The webhook fires, her Release Status updates to signed, Has Signed Release is checked, and a Slack message confirms the change.
Follow-up reminders sent by hand: zero. Unsigned forms that slip through the cracks: also zero.
6 — The Policy Moment
Critical Mentions · AI Scoring · Airtable · SlackOn a Wednesday morning, Congress introduces a surprise immigration bill. Coverage spikes across local and national outlets. Critical Mentions picks up dozens of new mentions across the immigration keyword feed between 8 AM and noon. The system polls every hour. By lunchtime, Claude has read and scored every relevant result — filtering out op-eds, think-pieces, and pundit commentary, and surfacing only the articles quoting or featuring real people with lived immigration experiences.
The team opens Slack at noon to find a digest: 11 new high- or medium-potential leads added to the Sourcing Pipeline since morning, each with a headline, source URL, issue area tag, and Claude's one-line rationale for the score. The team immediately begins outreach. Without the system, scanning for those leads manually would have taken most of the afternoon — by which time the news cycle would already be moving on.
The system turns a fast-moving news cycle into an advantage instead of a bottleneck.