Skip to content

Commit 8a5961d

Browse files
committed
Merged communications slices 5 to 7 (comms-oneone, comms-push, comms-steps): one-to-one emails from serving, connections, prayer, first visits, and 14 Cast staff emails; the church's app with test-only devices and pushes through Rock Mobile Push; and class, baptism, and After Starting Point flow messages tied to steps (decisions 159 to 163). All three packages pass verify on Rock 21.0.2
2 parents 73cb104 + 18191a0 commit 8a5961d

35 files changed

Lines changed: 2691 additions & 71 deletions

‎builder/PackageWriter.cs‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,11 @@ void AddFolder( string folder, string extension = null )
8787
AddFile( SampleDataSource.CastThreadsPath );
8888
}
8989

90+
if ( repository.Exists( SampleDataSource.CastStaffEmailsPath ) )
91+
{
92+
AddFile( SampleDataSource.CastStaffEmailsPath );
93+
}
94+
9095
AddFile( $"datasets/{dataset}.json" );
9196

9297
// The profile is resolved here, so a load never blends calibration sources itself.

‎cast/README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ The Cast is the set of hand-designed households: today **87 households and 185 p
1717
|---|---|
1818
| `households/*.json` | One file per household. Format: `household.schema.json`. These are the source of truth. |
1919
| `notes/*.json` | Hand-written notes on Cast people, one file per household. Format: `note.schema.json`. See [Cast notes](notes/README.md). |
20+
| `staff-emails.json` | The Cast staff's hand-written personal emails to Cast people, tied to their stories. See [staff-emails.md](staff-emails.md). |
2021
| `sms-threads.json` | The Cast's hand-written text conversations, covering every SMS Conversations state, with several always from the last few days. See [sms-threads.md](sms-threads.md). |
2122
| `prayer-requests.json` | The Cast's own prayer requests, tied to their stories, covering every prayer screen state, with at least 8 always current. Format: `prayer-requests.schema.json`. |
2223
| `groups/*.json` | One file per Cast group. Group membership lives here only. Format: `group.schema.json`. Small groups are plans written by the builder; see [Small groups](#small-groups). |

‎cast/staff-emails.json‎

Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,256 @@
1+
{
2+
"$comment": "Personal emails from Cast staff to Cast people, tied to their stories (cast/staff-emails.md). 'from' is a staff key in configuration/notes.json, 'to' is a Cast person Guid with an email that is active and allows email, and daysAgo and time date each email back from the install day. 'body' is the email's paragraphs: the first is the greeting and the last is the signature.",
3+
"emails": [
4+
{
5+
"key": "isaac-torres-welcome-table",
6+
"from": "isaac",
7+
"to": "8CB1DBDE-271F-41E9-8B4A-142AF83D9F44",
8+
"name": "Rosa Torres",
9+
"story": "Valeria asked to help at the student welcome table, so Isaac checks with her mom before she starts.",
10+
"daysAgo": 3,
11+
"time": "10:20",
12+
"subject": "Valeria and the student welcome table",
13+
"body": [
14+
"Hi Rosa,",
15+
"Valeria brought two friends to student night again this week. She makes everyone feel like they belong, and she asked if she could help at our welcome table.",
16+
"We would love to have her there. It means getting to student night about twenty minutes early, so I wanted to check with you before we put her on the list.",
17+
"Pickup time stays the same. If the earlier start does not work for your family, just let me know and we will find another way for her to help.",
18+
"Thanks for sharing her with us,",
19+
"Isaac"
20+
]
21+
},
22+
{
23+
"key": "pete-ramirez-lunch",
24+
"from": "pete",
25+
"to": "D41605ED-1652-421F-AC36-39DA3FE714E2",
26+
"name": "Carlos Ramirez",
27+
"story": "After the Ramirez family's second Sunday, Pete invites Carlos and Ana to the newcomers lunch.",
28+
"daysAgo": 4,
29+
"time": "09:45",
30+
"subject": "Glad you came back on Sunday",
31+
"body": [
32+
"Hi Carlos,",
33+
"Ted told me your family came back on Sunday, and that you and Ana stayed for coffee afterward. That made my week.",
34+
"You asked Ted what a next step looks like for a family. The newcomers lunch is a good place to start, and Ana already has the date from her card.",
35+
"I know Saturdays are work days for you, so we keep the lunch on Sunday right after the service. Childcare is in the same rooms Lucas and Mia already know.",
36+
"I would love to meet you both there.",
37+
"Pastor Pete"
38+
]
39+
},
40+
{
41+
"key": "isaac-dawson-weekends",
42+
"from": "isaac",
43+
"to": "DE3E4484-6818-4919-978A-A2A2EBEFC64A",
44+
"name": "Kevin Dawson",
45+
"story": "Isaac lines up the student calendar with Kevin's every-other-weekend schedule so Tyler can join in.",
46+
"daysAgo": 30,
47+
"time": "14:10",
48+
"subject": "Student events that land on your weekends",
49+
"body": [
50+
"Hi Kevin,",
51+
"I sat down with the student calendar and marked the events that fall on your weekends with Tyler. The student retreat next month is one of them, and we would love to have him.",
52+
"His small group leader will keep sending him a recap on the weeks he is with his mom. That way he never feels behind when he walks back in.",
53+
"If the drive home from the retreat does not fit your plans, I can find Tyler a ride with another family. Emma is welcome in the kids rooms that morning too.",
54+
"Glad you two are part of things,",
55+
"Isaac"
56+
]
57+
},
58+
{
59+
"key": "ted-coffee-baptism-story",
60+
"from": "ted",
61+
"to": "3459286F-18C8-4548-9938-53DAC8483D01",
62+
"name": "Phil Coffee",
63+
"story": "Phil's coworker keeps asking about his baptism, and Ted asks Phil to share his story at the next baptism class.",
64+
"daysAgo": 38,
65+
"time": "11:05",
66+
"subject": "Would you share your baptism story?",
67+
"body": [
68+
"Hi Phil,",
69+
"I saw your prayer request about your coworker asking why you were baptized. I am praying with you, and I love that people come to you with those questions now.",
70+
"That gave me an idea. Would you share your story for five minutes at our next baptism class? People who are thinking about baptism need to hear from someone who once sat in their seat.",
71+
"You could tell it the way it happened, from Allie's Easter invite to the day you both went into the water. No notes needed.",
72+
"And if your coworker ever comes on a Sunday, save me a seat next to you both.",
73+
"Ted"
74+
]
75+
},
76+
{
77+
"key": "pete-hayes-anniversary",
78+
"from": "pete",
79+
"to": "468247EF-7A8B-4E02-9F23-C3BA98C74837",
80+
"name": "Bob Hayes",
81+
"story": "Pete congratulates Bob on 46 years of marriage and thanks him and Linda for 25 years of faithful giving.",
82+
"daysAgo": 57,
83+
"time": "10:30",
84+
"subject": "Forty-six years",
85+
"body": [
86+
"Dear Bob,",
87+
"Linda's prayer request said the two of you celebrate 46 years of marriage this month. Congratulations to you both.",
88+
"I also want to say thank you. For 25 years you have been in your seat at the 9:00 service, and you have given every single week. That kind of steady faithfulness holds a church together.",
89+
"Pamela and I are praying for many more years for you and Linda.",
90+
"With gratitude,",
91+
"Pastor Pete"
92+
]
93+
},
94+
{
95+
"key": "ted-ellis-welcome",
96+
"from": "ted",
97+
"to": "4642FEAD-FFB8-4FB8-A5BD-8F9B67C2D4BA",
98+
"name": "Hannah Ellis",
99+
"story": "Ted welcomes Hannah and Jordan after their first few Sundays.",
100+
"daysAgo": 106,
101+
"time": "13:40",
102+
"subject": "So glad you're here",
103+
"body": [
104+
"Hi Hannah,",
105+
"It was great to meet you and Jordan at the welcome center a couple of weeks ago, and even better to see you back each Sunday since.",
106+
"You said you were looking for a church where the two of you can grow together. Starting Point is a good first step for that, and it is an easy way to meet other couples.",
107+
"There is no pressure to sign up for anything yet. Take your time and get to know the place.",
108+
"If you ever have a question, just reply to this email.",
109+
"Ted"
110+
]
111+
},
112+
{
113+
"key": "isaac-brooks-camp",
114+
"from": "isaac",
115+
"to": "CADE3046-BF77-4131-9527-D52E4700E038",
116+
"name": "Nathan Brooks",
117+
"story": "After Student Camp, Isaac writes to Nathan about Ava's decision to follow Jesus there.",
118+
"daysAgo": 128,
119+
"time": "15:15",
120+
"subject": "A few words about Ava and camp",
121+
"body": [
122+
"Hi Nathan,",
123+
"I know Ava already told you and Rachel her news from camp. I wanted you to hear from me too that her decision to follow Jesus was her own, and she was so clear about it.",
124+
"She also stayed up late helping a younger girl in her cabin who was homesick. You are raising a kind and brave kid.",
125+
"When she is ready, I would love to sit down with the three of you and talk about next steps. There is no rush at all.",
126+
"Celebrating with you,",
127+
"Isaac"
128+
]
129+
},
130+
{
131+
"key": "alisha-shaw-membership",
132+
"from": "alisha",
133+
"to": "EA03C61D-F6B3-4B00-8028-5BC86F24CA09",
134+
"name": "Lauren Shaw",
135+
"story": "Lauren asked Pete about the membership class, and Alisha sends her the details.",
136+
"daysAgo": 148,
137+
"time": "09:25",
138+
"subject": "Membership class details",
139+
"body": [
140+
"Hi Lauren,",
141+
"Pastor Pete mentioned you asked about the membership class. I am so glad, and he was too.",
142+
"The next class meets in three weeks, on a Sunday right after the 10:30 service. Lunch is provided, and Owen and Ella are welcome in the kids rooms while you are in class.",
143+
"Just reply to this email and I will save seats for you and Andy.",
144+
"Alisha Marble",
145+
"Church Office"
146+
]
147+
},
148+
{
149+
"key": "pete-greggs-anniversary",
150+
"from": "pete",
151+
"to": "1A5A4E5F-E0A4-4EFA-B7D7-6698153ED718",
152+
"name": "Lorraine Greggs",
153+
"story": "Pete writes to Lorraine gently during the week of the anniversary of Jenny's death.",
154+
"daysAgo": 199,
155+
"time": "08:50",
156+
"subject": "Thinking of you this week",
157+
"body": [
158+
"Dear Lorraine,",
159+
"I saw your prayer request last night. Pamela and I are holding you, Bob, Tim, and Jordan close in prayer this week.",
160+
"There is no need to write back. I only wanted you to know that we remember Jenny with you.",
161+
"If you and Bob want to take a week off from hosting the grief group, just say the word. Ted or I will gladly cover a night.",
162+
"With love,",
163+
"Pastor Pete"
164+
]
165+
},
166+
{
167+
"key": "daniel-michaels-camp-page",
168+
"from": "daniel",
169+
"to": "82309081-A110-496F-8295-CE6A4720D7A8",
170+
"name": "Jenny Michaels",
171+
"story": "Daniel thanks Jenny for helping build the camp and car show pages on the church website.",
172+
"daysAgo": 205,
173+
"time": "16:20",
174+
"subject": "Thanks for your help with the camp page",
175+
"body": [
176+
"Hi Jenny,",
177+
"The Student Camp page went live on the website this morning, and the first registrations are already in. Thank you for writing the packing list and the parent questions.",
178+
"You also caught the broken link on the car show page before anyone else saw it. That saved me a lot of emails.",
179+
"If you have time later, I would love your eyes on the volunteer sign-up page too. You think the way our families do.",
180+
"Thanks again,",
181+
"Daniel"
182+
]
183+
},
184+
{
185+
"key": "alisha-kelly-rent",
186+
"from": "alisha",
187+
"to": "6E6B8CBF-9946-4DCE-B3D6-80A7F2F5B171",
188+
"name": "Ashley Kelly",
189+
"story": "Alisha lets Ashley know the benevolence team's rent help went to her landlord, and shares the budgeting class.",
190+
"daysAgo": 262,
191+
"time": "11:30",
192+
"subject": "Your rent payment went out today",
193+
"body": [
194+
"Hi Ashley,",
195+
"I wanted you to know that the rent payment went to your landlord this morning. You do not need to do anything else.",
196+
"Ted mentioned the budgeting class, and I am sending the dates in case they help. Free childcare is included, so Mason and Chloe are welcome. Come only if it works with your schedule.",
197+
"If anything else comes up, please call or email me directly. That is what we are here for.",
198+
"Alisha"
199+
]
200+
},
201+
{
202+
"key": "ward-derek-check-in",
203+
"from": "pete",
204+
"to": "5EFB0260-BF0A-491F-A4D5-C1205DCECB11",
205+
"name": "Derek Ward",
206+
"story": "Three months after their counseling ended, Pete checks in on Derek as he promised.",
207+
"daysAgo": 380,
208+
"time": "10:05",
209+
"subject": "Checking in, as promised",
210+
"body": [
211+
"Hi Derek,",
212+
"It has been about three months since our last meeting, and I told you I would check in. How are you, Kayla, and the kids doing?",
213+
"I think often about how hard you worked through a heavy season. Steady work and a family plan did not just happen. You fought for them.",
214+
"No meeting is needed unless you want one. My door is open anytime, and I would love to grab lunch if you are free.",
215+
"Proud of you,",
216+
"Pastor Pete"
217+
]
218+
},
219+
{
220+
"key": "pete-carter-thanks",
221+
"from": "pete",
222+
"to": "7A3DD18D-BE93-4253-ACE3-B5CB02EDB087",
223+
"name": "Peggy Carter",
224+
"story": "Pete thanks Peggy for thirty years of faithful giving and for her place in the 9:00 service.",
225+
"daysAgo": 520,
226+
"time": "14:35",
227+
"subject": "Thank you for thirty faithful years",
228+
"body": [
229+
"Dear Peggy,",
230+
"Alisha told me your check arrived again this month, right on time as always. I do not say it often enough, so I want to say it now: thank you.",
231+
"For thirty years you have given faithfully and sat in the same row at the 9:00 service. I still picture you and Walter there together, and I know how much that row means to you.",
232+
"Your quiet faithfulness has helped this church through more seasons than most people know.",
233+
"With deep thanks,",
234+
"Pastor Pete"
235+
]
236+
},
237+
{
238+
"key": "ted-song-baptism-helper",
239+
"from": "ted",
240+
"to": "D593F194-9DC3-4936-A1C3-FB7E5CB09145",
241+
"name": "Allie Song",
242+
"story": "Ted asks Allie, who was baptized alongside her neighbor Phil Coffee, to help at the next baptism Sunday.",
243+
"daysAgo": 690,
244+
"time": "12:15",
245+
"subject": "Could you help at baptism Sunday?",
246+
"body": [
247+
"Hi Allie,",
248+
"Our next baptism Sunday is coming up next month, and I would love for you to be one of our helpers.",
249+
"Helpers hand out towels, help people find their changing rooms, and pray with anyone who is nervous. You know that feeling, since you and Phil went into the water on the same day.",
250+
"Your story of inviting your neighbor to Easter still encourages people. Having you there would mean a lot to the folks being baptized.",
251+
"Let me know if you can make it.",
252+
"Ted"
253+
]
254+
}
255+
]
256+
}

‎cast/staff-emails.md‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Cast staff emails
2+
3+
Personal emails from Cast staff to Cast people, tied to their stories, in [staff-emails.json](staff-emails.json). Every load writes them, so a Cast person's Communication History shows the same personal notes on every dataset. Generated people get one-to-one messages from the data instead: serving confirmations and reminders, connection follow-ups, prayer, and first-visit welcomes (see [Communications](../docs/communications.md#one-to-one-messages)).
4+
5+
## Format
6+
7+
```json
8+
{
9+
"$comment": "...",
10+
"emails": [
11+
{
12+
"key": "ted-ellis-welcome",
13+
"from": "ted",
14+
"to": "<Cast person Guid>",
15+
"name": "Hannah Ellis",
16+
"story": "Why the email exists, in one sentence.",
17+
"daysAgo": 40,
18+
"time": "10:15",
19+
"subject": "So glad you're here",
20+
"body": [ "Hi Hannah,", "...", "Ted" ]
21+
}
22+
]
23+
}
24+
```
25+
26+
- **from** is a staff key in [configuration/notes.json](../configuration/notes.json): `pete`, `ted`, `alisha`, `daniel`, or `isaac`. The email comes from that staff member by name and from their email address.
27+
- **to** is a Cast person with an email that is active and allows email.
28+
- **daysAgo** and **time** date the email back from the install day, inside the last two years.
29+
- **body** is the email's paragraphs, plain text. The first is the greeting and the last is the signature.

0 commit comments

Comments
 (0)