placementt-core 1.400.1256 → 1.400.1258

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { CohortData, ExternalEvent, InstituteData } from "./typeDefinitions";
1
+ import { CohortData, EmailInteraction, ExternalEvent, InstituteData } from "./typeDefinitions";
2
2
  import { ResolvedProducts } from "./productResolver";
3
3
  import { SurveyCycle } from "./surveys/types";
4
4
  /**
@@ -125,3 +125,21 @@ export declare const matchesBulkFilters: (school: {
125
125
  * @return {string} "Today", "1 day ago" or "12 days ago".
126
126
  */
127
127
  export declare const bulkSentAgo: (day: string, now: Date) => string;
128
+ /** The days after an engagement email that its reminders fall due. */
129
+ export declare const ENGAGEMENT_REMINDER_DAYS: number[];
130
+ /** How many reminders an engagement email gets. */
131
+ export declare const ENGAGEMENT_REMINDERS: number;
132
+ /** The fewest days between reminders, for one sent late. */
133
+ export declare const ENGAGEMENT_REMINDER_MIN_GAP = 3;
134
+ /**
135
+ * Where an engagement email's reminders stand today, by the days since it was
136
+ * sent. Every email starts with `sendReminders` on, so one sent without
137
+ * follow-ups is stopped. A reminder sent late can't be followed by the next
138
+ * within ENGAGEMENT_REMINDER_MIN_GAP days.
139
+ *
140
+ * @param {object} email the email interaction.
141
+ * @param {string} today YYYY-MM-DD.
142
+ * @return {string} "remind" when the next reminder is due, "wait" until then,
143
+ * "finished" once the reminders have gone and a week has passed, or "stop".
144
+ */
145
+ export declare const engagementReminderStage: (email: Pick<EmailInteraction, "sentDay" | "lastReminderDay" | "reminderNumber" | "additionalData">, today: string) => "remind" | "wait" | "finished" | "stop";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bulkSentAgo = exports.matchesBulkFilters = exports.bulkEngagementSuggestion = exports.BULK_TEMPLATE_CHECKS = exports.bulkYearSetup = exports.RECENTLY_SENT_DAYS = exports.BULK_TEST_SCHOOLS = exports.BULK_TEST_RECIPIENT = exports.BULK_ENGAGEMENT_PRODUCT_LABELS = exports.BULK_ENGAGEMENT_PRODUCTS = exports.BULK_ENGAGEMENT_PACKAGE_LABELS = exports.BULK_ENGAGEMENT_BLOCKING_FLAGS = exports.BULK_ENGAGEMENT_FLAG_LABELS = void 0;
3
+ exports.engagementReminderStage = exports.ENGAGEMENT_REMINDER_MIN_GAP = exports.ENGAGEMENT_REMINDERS = exports.ENGAGEMENT_REMINDER_DAYS = exports.bulkSentAgo = exports.matchesBulkFilters = exports.bulkEngagementSuggestion = exports.BULK_TEMPLATE_CHECKS = exports.bulkYearSetup = exports.RECENTLY_SENT_DAYS = exports.BULK_TEST_SCHOOLS = exports.BULK_TEST_RECIPIENT = exports.BULK_ENGAGEMENT_PRODUCT_LABELS = exports.BULK_ENGAGEMENT_PRODUCTS = exports.BULK_ENGAGEMENT_PACKAGE_LABELS = exports.BULK_ENGAGEMENT_BLOCKING_FLAGS = exports.BULK_ENGAGEMENT_FLAG_LABELS = void 0;
4
4
  const renewals_1 = require("./renewals");
5
5
  const constants_1 = require("./constants");
6
6
  const outreachRules_1 = require("./outreachRules");
@@ -156,4 +156,36 @@ const bulkSentAgo = (day, now) => {
156
156
  return days === 1 ? "1 day ago" : `${days} days ago`;
157
157
  };
158
158
  exports.bulkSentAgo = bulkSentAgo;
159
+ /** The days after an engagement email that its reminders fall due. */
160
+ exports.ENGAGEMENT_REMINDER_DAYS = [7, 14, 21];
161
+ /** How many reminders an engagement email gets. */
162
+ exports.ENGAGEMENT_REMINDERS = exports.ENGAGEMENT_REMINDER_DAYS.length;
163
+ /** The fewest days between reminders, for one sent late. */
164
+ exports.ENGAGEMENT_REMINDER_MIN_GAP = 3;
165
+ /** How long after the last reminder an unanswered chain is finished. */
166
+ const CHAIN_END_DAYS = 7;
167
+ const daysBetween = (from, to) => Math.round((Date.parse(`${to.slice(0, 10)}T00:00:00Z`) - Date.parse(`${from.slice(0, 10)}T00:00:00Z`)) / 86400000);
168
+ /**
169
+ * Where an engagement email's reminders stand today, by the days since it was
170
+ * sent. Every email starts with `sendReminders` on, so one sent without
171
+ * follow-ups is stopped. A reminder sent late can't be followed by the next
172
+ * within ENGAGEMENT_REMINDER_MIN_GAP days.
173
+ *
174
+ * @param {object} email the email interaction.
175
+ * @param {string} today YYYY-MM-DD.
176
+ * @return {string} "remind" when the next reminder is due, "wait" until then,
177
+ * "finished" once the reminders have gone and a week has passed, or "stop".
178
+ */
179
+ const engagementReminderStage = (email, today) => {
180
+ if (!email.additionalData?.stepKey && !email.additionalData?.followUps)
181
+ return "stop";
182
+ const sent = email.reminderNumber || 0;
183
+ const sinceLast = daysBetween(email.lastReminderDay || email.sentDay, today);
184
+ if (sent >= exports.ENGAGEMENT_REMINDERS)
185
+ return sinceLast >= CHAIN_END_DAYS ? "finished" : "wait";
186
+ if (daysBetween(email.sentDay, today) < exports.ENGAGEMENT_REMINDER_DAYS[sent])
187
+ return "wait";
188
+ return email.lastReminderDay && sinceLast < exports.ENGAGEMENT_REMINDER_MIN_GAP ? "wait" : "remind";
189
+ };
190
+ exports.engagementReminderStage = engagementReminderStage;
159
191
  //# sourceMappingURL=bulkEngagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bulkEngagement.js","sourceRoot":"","sources":["../src/bulkEngagement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulkEngagement.js","sourceRoot":"","sources":["../src/bulkEngagement.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,31 @@ describe("bulkYearSetup", () => {
95
95
  ] }).events).toBe(2);
96
96
  });
97
97
  });
98
+ describe("engagementReminderStage", () => {
99
+ const email = (overrides = {}) => ({ sentDay: "2026-10-01", additionalData: { oId: "a", stepKey: "students.route" }, ...overrides });
100
+ const stage = (today, overrides = {}) => (0, bulkEngagement_1.engagementReminderStage)(email(overrides), today);
101
+ it("stops an email sent without follow-ups", () => {
102
+ expect(stage("2026-10-02", { additionalData: { oId: "a", templateKey: "engagementRenewalCheckIn" } })).toBe("stop");
103
+ });
104
+ it("treats follow-ups like a step's email", () => {
105
+ expect(stage("2026-10-08", { additionalData: { oId: "a", followUps: true } })).toBe("remind");
106
+ });
107
+ it("falls due 7, 14 and 21 days after the email", () => {
108
+ expect(stage("2026-10-07")).toBe("wait");
109
+ expect(stage("2026-10-08")).toBe("remind");
110
+ expect(stage("2026-10-14", { reminderNumber: 1, lastReminderDay: "2026-10-08" })).toBe("wait");
111
+ expect(stage("2026-10-15", { reminderNumber: 1, lastReminderDay: "2026-10-08" })).toBe("remind");
112
+ expect(stage("2026-10-22", { reminderNumber: 2, lastReminderDay: "2026-10-15" })).toBe("remind");
113
+ });
114
+ it("leaves a gap after a reminder sent late", () => {
115
+ expect(stage("2026-10-15", { reminderNumber: 1, lastReminderDay: "2026-10-14" })).toBe("wait");
116
+ expect(stage("2026-10-17", { reminderNumber: 1, lastReminderDay: "2026-10-14" })).toBe("remind");
117
+ });
118
+ it("finishes a week after the last reminder", () => {
119
+ expect(stage("2026-10-28", { reminderNumber: 3, lastReminderDay: "2026-10-22" })).toBe("wait");
120
+ expect(stage("2026-10-29", { reminderNumber: 3, lastReminderDay: "2026-10-22" })).toBe("finished");
121
+ });
122
+ });
98
123
  describe("matchesBulkFilters", () => {
99
124
  const trust = { package: "institutes-two", products: ["wex", "destinations"] };
100
125
  const hub = { package: "careersHub", products: ["employerEvents"] };
@@ -1 +1 @@
1
- {"version":3,"file":"bulkEngagement.test.js","sourceRoot":"","sources":["../src/bulkEngagement.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulkEngagement.test.js","sourceRoot":"","sources":["../src/bulkEngagement.test.ts"],"names":[],"mappings":"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"}
@@ -201,6 +201,139 @@ export declare const engagementCallables: {
201
201
  }>;
202
202
  }>;
203
203
  };
204
+ /** The engagement reminders in draft, each with the account's status and the exact email. */
205
+ "engagementReminders-getWaitingReminders": {
206
+ request: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
207
+ response: z.ZodObject<{
208
+ reminders: z.ZodArray<z.ZodObject<{
209
+ /** The draft's interaction. */
210
+ id: z.ZodString;
211
+ oId: z.ZodString;
212
+ schoolName: z.ZodString;
213
+ package: z.ZodString;
214
+ lifecycleStatus: z.ZodOptional<z.ZodString>;
215
+ recipientName: z.ZodString;
216
+ recipientEmail: z.ZodString;
217
+ /** The original email's name. */
218
+ title: z.ZodString;
219
+ /** The day the original went, YYYY-MM-DD. */
220
+ sentDay: z.ZodString;
221
+ lastReminderDay: z.ZodOptional<z.ZodString>;
222
+ /** Which reminder this would be. 1 is the first. */
223
+ number: z.ZodNumber;
224
+ /** How the recipient has engaged with the original so far. */
225
+ topInteraction: z.ZodOptional<z.ZodString>;
226
+ /** Whether the checks say it should go. Approving is refused if not. */
227
+ due: z.ZodBoolean;
228
+ /** Why, for the admin. */
229
+ note: z.ZodString;
230
+ /** The email as it would go, for the previewer. */
231
+ content: z.ZodRecord<z.ZodString, z.ZodUnknown>;
232
+ }, "strip", z.ZodTypeAny, {
233
+ number: number;
234
+ id: string;
235
+ content: Record<string, unknown>;
236
+ title: string;
237
+ note: string;
238
+ oId: string;
239
+ package: string;
240
+ schoolName: string;
241
+ sentDay: string;
242
+ recipientName: string;
243
+ recipientEmail: string;
244
+ due: boolean;
245
+ lifecycleStatus?: string | undefined;
246
+ lastReminderDay?: string | undefined;
247
+ topInteraction?: string | undefined;
248
+ }, {
249
+ number: number;
250
+ id: string;
251
+ content: Record<string, unknown>;
252
+ title: string;
253
+ note: string;
254
+ oId: string;
255
+ package: string;
256
+ schoolName: string;
257
+ sentDay: string;
258
+ recipientName: string;
259
+ recipientEmail: string;
260
+ due: boolean;
261
+ lifecycleStatus?: string | undefined;
262
+ lastReminderDay?: string | undefined;
263
+ topInteraction?: string | undefined;
264
+ }>, "many">;
265
+ }, "strip", z.ZodTypeAny, {
266
+ reminders: {
267
+ number: number;
268
+ id: string;
269
+ content: Record<string, unknown>;
270
+ title: string;
271
+ note: string;
272
+ oId: string;
273
+ package: string;
274
+ schoolName: string;
275
+ sentDay: string;
276
+ recipientName: string;
277
+ recipientEmail: string;
278
+ due: boolean;
279
+ lifecycleStatus?: string | undefined;
280
+ lastReminderDay?: string | undefined;
281
+ topInteraction?: string | undefined;
282
+ }[];
283
+ }, {
284
+ reminders: {
285
+ number: number;
286
+ id: string;
287
+ content: Record<string, unknown>;
288
+ title: string;
289
+ note: string;
290
+ oId: string;
291
+ package: string;
292
+ schoolName: string;
293
+ sentDay: string;
294
+ recipientName: string;
295
+ recipientEmail: string;
296
+ due: boolean;
297
+ lifecycleStatus?: string | undefined;
298
+ lastReminderDay?: string | undefined;
299
+ topInteraction?: string | undefined;
300
+ }[];
301
+ }>;
302
+ };
303
+ /** Sends one draft reminder as it stands, after checking again that it should go. */
304
+ "engagementReminders-sendDraftReminder": {
305
+ request: z.ZodObject<{
306
+ id: z.ZodString;
307
+ }, "strip", z.ZodTypeAny, {
308
+ id: string;
309
+ }, {
310
+ id: string;
311
+ }>;
312
+ response: z.ZodObject<{
313
+ sent: z.ZodLiteral<true>;
314
+ }, "strip", z.ZodTypeAny, {
315
+ sent: true;
316
+ }, {
317
+ sent: true;
318
+ }>;
319
+ };
320
+ /** Deletes a draft reminder and pauses its chain, which can be resumed from the school's email card. */
321
+ "engagementReminders-stopDraftReminder": {
322
+ request: z.ZodObject<{
323
+ id: z.ZodString;
324
+ }, "strip", z.ZodTypeAny, {
325
+ id: string;
326
+ }, {
327
+ id: string;
328
+ }>;
329
+ response: z.ZodObject<{
330
+ stopped: z.ZodLiteral<true>;
331
+ }, "strip", z.ZodTypeAny, {
332
+ stopped: true;
333
+ }, {
334
+ stopped: true;
335
+ }>;
336
+ };
204
337
  /** One-off: removes the open renewal email tasks the old automatic schedule made. */
205
338
  "bulkEngagement-clearRenewalEmailTasks": {
206
339
  request: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
@@ -74,6 +74,47 @@ exports.engagementCallables = {
74
74
  results: zod_1.z.record(zod_1.z.string(), zod_1.z.object({ sent: zod_1.z.array(zod_1.z.string()), error: zod_1.z.string().optional() })),
75
75
  }),
76
76
  },
77
+ /** The engagement reminders in draft, each with the account's status and the exact email. */
78
+ "engagementReminders-getWaitingReminders": {
79
+ request: zod_1.z.object({}).optional(),
80
+ response: zod_1.z.object({
81
+ reminders: zod_1.z.array(zod_1.z.object({
82
+ /** The draft's interaction. */
83
+ id: zod_1.z.string(),
84
+ oId: zod_1.z.string(),
85
+ schoolName: zod_1.z.string(),
86
+ package: zod_1.z.string(),
87
+ lifecycleStatus: zod_1.z.string().optional(),
88
+ recipientName: zod_1.z.string(),
89
+ recipientEmail: zod_1.z.string(),
90
+ /** The original email's name. */
91
+ title: zod_1.z.string(),
92
+ /** The day the original went, YYYY-MM-DD. */
93
+ sentDay: zod_1.z.string(),
94
+ lastReminderDay: zod_1.z.string().optional(),
95
+ /** Which reminder this would be. 1 is the first. */
96
+ number: zod_1.z.number(),
97
+ /** How the recipient has engaged with the original so far. */
98
+ topInteraction: zod_1.z.string().optional(),
99
+ /** Whether the checks say it should go. Approving is refused if not. */
100
+ due: zod_1.z.boolean(),
101
+ /** Why, for the admin. */
102
+ note: zod_1.z.string(),
103
+ /** The email as it would go, for the previewer. */
104
+ content: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()),
105
+ })),
106
+ }),
107
+ },
108
+ /** Sends one draft reminder as it stands, after checking again that it should go. */
109
+ "engagementReminders-sendDraftReminder": {
110
+ request: zod_1.z.object({ id: zod_1.z.string().min(1) }),
111
+ response: zod_1.z.object({ sent: zod_1.z.literal(true) }),
112
+ },
113
+ /** Deletes a draft reminder and pauses its chain, which can be resumed from the school's email card. */
114
+ "engagementReminders-stopDraftReminder": {
115
+ request: zod_1.z.object({ id: zod_1.z.string().min(1) }),
116
+ response: zod_1.z.object({ stopped: zod_1.z.literal(true) }),
117
+ },
77
118
  /** One-off: removes the open renewal email tasks the old automatic schedule made. */
78
119
  "bulkEngagement-clearRenewalEmailTasks": {
79
120
  request: zod_1.z.object({}).optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"engagement.js","sourceRoot":"","sources":["../../src/callables/engagement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engagement.js","sourceRoot":"","sources":["../../src/callables/engagement.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AACtB,mCAAqD;AAErD;;;;;;;GAOG;AAEH,MAAM,IAAI,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;AACpG,MAAM,OAAO,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC;AAErD,QAAA,mBAAmB,GAAG;IAC/B,yCAAyC,EAAE;QACvC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,mEAAmE;YACnE,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SACjC,CAAC;QACF,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;gBACtB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;gBACf,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;gBAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;gBACnB,wDAAwD;gBACxD,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC1B,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE;gBACtB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACpB,wDAAwD;gBACxD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;gBACpB,8DAA8D;gBAC9D,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC/B,iFAAiF;gBACjF,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC,QAAQ,EAAE;gBACxE,sEAAsE;gBACtE,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC;aAC3C,CAAC,CAAC;SACN,CAAC;KACL;IACD,wCAAwC,EAAE;QACtC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7E,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC;YACvD,8EAA8E;YAC9E,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,4DAA4D;YAC5D,SAAS,EAAE,IAAA,qBAAa,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC;YACpC,oFAAoF;YACpF,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE;SACzB,CAAC;QACF,+DAA+D;QAC/D,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC;SACrG,CAAC;KACL;IACD;;;;OAIG;IACH,uCAAuC,EAAE;QACrC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3E,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC;YACvD,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,SAAS,EAAE,IAAA,qBAAa,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACvC,CAAC;QACF,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC;SACrG,CAAC;KACL;IACD,6FAA6F;IAC7F,yCAAyC,EAAE;QACvC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;gBACxB,+BAA+B;gBAC/B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;gBACd,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;gBACf,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;gBACtB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;gBACnB,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACtC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;gBACzB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE;gBAC1B,iCAAiC;gBACjC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;gBACjB,6CAA6C;gBAC7C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;gBACnB,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACtC,oDAAoD;gBACpD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;gBAClB,8DAA8D;gBAC9D,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACrC,wEAAwE;gBACxE,GAAG,EAAE,OAAC,CAAC,OAAO,EAAE;gBAChB,0BAA0B;gBAC1B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;gBAChB,mDAAmD;gBACnD,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC;aAC7C,CAAC,CAAC;SACN,CAAC;KACL;IACD,qFAAqF;IACrF,uCAAuC,EAAE;QACrC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC;QAC1C,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,CAAC;KAC9C;IACD,wGAAwG;IACxG,uCAAuC,EAAE;QACrC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC;QAC1C,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,CAAC;KACjD;IACD,qFAAqF;IACrF,uCAAuC,EAAE;QACrC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,EAAC,CAAC;KAC5C;CACoB,CAAC"}
@@ -197,6 +197,128 @@ export declare const allCallables: {
197
197
  }>;
198
198
  }>;
199
199
  };
200
+ "engagementReminders-getWaitingReminders": {
201
+ request: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
202
+ response: z.ZodObject<{
203
+ reminders: z.ZodArray<z.ZodObject<{
204
+ id: z.ZodString;
205
+ oId: z.ZodString;
206
+ schoolName: z.ZodString;
207
+ package: z.ZodString;
208
+ lifecycleStatus: z.ZodOptional<z.ZodString>;
209
+ recipientName: z.ZodString;
210
+ recipientEmail: z.ZodString;
211
+ title: z.ZodString;
212
+ sentDay: z.ZodString;
213
+ lastReminderDay: z.ZodOptional<z.ZodString>;
214
+ number: z.ZodNumber;
215
+ topInteraction: z.ZodOptional<z.ZodString>;
216
+ due: z.ZodBoolean;
217
+ note: z.ZodString;
218
+ content: z.ZodRecord<z.ZodString, z.ZodUnknown>;
219
+ }, "strip", z.ZodTypeAny, {
220
+ number: number;
221
+ id: string;
222
+ content: Record<string, unknown>;
223
+ title: string;
224
+ note: string;
225
+ oId: string;
226
+ package: string;
227
+ schoolName: string;
228
+ sentDay: string;
229
+ recipientName: string;
230
+ recipientEmail: string;
231
+ due: boolean;
232
+ lifecycleStatus?: string | undefined;
233
+ lastReminderDay?: string | undefined;
234
+ topInteraction?: string | undefined;
235
+ }, {
236
+ number: number;
237
+ id: string;
238
+ content: Record<string, unknown>;
239
+ title: string;
240
+ note: string;
241
+ oId: string;
242
+ package: string;
243
+ schoolName: string;
244
+ sentDay: string;
245
+ recipientName: string;
246
+ recipientEmail: string;
247
+ due: boolean;
248
+ lifecycleStatus?: string | undefined;
249
+ lastReminderDay?: string | undefined;
250
+ topInteraction?: string | undefined;
251
+ }>, "many">;
252
+ }, "strip", z.ZodTypeAny, {
253
+ reminders: {
254
+ number: number;
255
+ id: string;
256
+ content: Record<string, unknown>;
257
+ title: string;
258
+ note: string;
259
+ oId: string;
260
+ package: string;
261
+ schoolName: string;
262
+ sentDay: string;
263
+ recipientName: string;
264
+ recipientEmail: string;
265
+ due: boolean;
266
+ lifecycleStatus?: string | undefined;
267
+ lastReminderDay?: string | undefined;
268
+ topInteraction?: string | undefined;
269
+ }[];
270
+ }, {
271
+ reminders: {
272
+ number: number;
273
+ id: string;
274
+ content: Record<string, unknown>;
275
+ title: string;
276
+ note: string;
277
+ oId: string;
278
+ package: string;
279
+ schoolName: string;
280
+ sentDay: string;
281
+ recipientName: string;
282
+ recipientEmail: string;
283
+ due: boolean;
284
+ lifecycleStatus?: string | undefined;
285
+ lastReminderDay?: string | undefined;
286
+ topInteraction?: string | undefined;
287
+ }[];
288
+ }>;
289
+ };
290
+ "engagementReminders-sendDraftReminder": {
291
+ request: z.ZodObject<{
292
+ id: z.ZodString;
293
+ }, "strip", z.ZodTypeAny, {
294
+ id: string;
295
+ }, {
296
+ id: string;
297
+ }>;
298
+ response: z.ZodObject<{
299
+ sent: z.ZodLiteral<true>;
300
+ }, "strip", z.ZodTypeAny, {
301
+ sent: true;
302
+ }, {
303
+ sent: true;
304
+ }>;
305
+ };
306
+ "engagementReminders-stopDraftReminder": {
307
+ request: z.ZodObject<{
308
+ id: z.ZodString;
309
+ }, "strip", z.ZodTypeAny, {
310
+ id: string;
311
+ }, {
312
+ id: string;
313
+ }>;
314
+ response: z.ZodObject<{
315
+ stopped: z.ZodLiteral<true>;
316
+ }, "strip", z.ZodTypeAny, {
317
+ stopped: true;
318
+ }, {
319
+ stopped: true;
320
+ }>;
321
+ };
200
322
  "bulkEngagement-clearRenewalEmailTasks": {
201
323
  request: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
202
324
  response: z.ZodObject<{
@@ -8246,6 +8368,128 @@ export declare const callableGroups: {
8246
8368
  }>;
8247
8369
  }>;
8248
8370
  };
8371
+ "engagementReminders-getWaitingReminders": {
8372
+ request: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
8373
+ response: z.ZodObject<{
8374
+ reminders: z.ZodArray<z.ZodObject<{
8375
+ id: z.ZodString;
8376
+ oId: z.ZodString;
8377
+ schoolName: z.ZodString;
8378
+ package: z.ZodString;
8379
+ lifecycleStatus: z.ZodOptional<z.ZodString>;
8380
+ recipientName: z.ZodString;
8381
+ recipientEmail: z.ZodString;
8382
+ title: z.ZodString;
8383
+ sentDay: z.ZodString;
8384
+ lastReminderDay: z.ZodOptional<z.ZodString>;
8385
+ number: z.ZodNumber;
8386
+ topInteraction: z.ZodOptional<z.ZodString>;
8387
+ due: z.ZodBoolean;
8388
+ note: z.ZodString;
8389
+ content: z.ZodRecord<z.ZodString, z.ZodUnknown>;
8390
+ }, "strip", z.ZodTypeAny, {
8391
+ number: number;
8392
+ id: string;
8393
+ content: Record<string, unknown>;
8394
+ title: string;
8395
+ note: string;
8396
+ oId: string;
8397
+ package: string;
8398
+ schoolName: string;
8399
+ sentDay: string;
8400
+ recipientName: string;
8401
+ recipientEmail: string;
8402
+ due: boolean;
8403
+ lifecycleStatus?: string | undefined;
8404
+ lastReminderDay?: string | undefined;
8405
+ topInteraction?: string | undefined;
8406
+ }, {
8407
+ number: number;
8408
+ id: string;
8409
+ content: Record<string, unknown>;
8410
+ title: string;
8411
+ note: string;
8412
+ oId: string;
8413
+ package: string;
8414
+ schoolName: string;
8415
+ sentDay: string;
8416
+ recipientName: string;
8417
+ recipientEmail: string;
8418
+ due: boolean;
8419
+ lifecycleStatus?: string | undefined;
8420
+ lastReminderDay?: string | undefined;
8421
+ topInteraction?: string | undefined;
8422
+ }>, "many">;
8423
+ }, "strip", z.ZodTypeAny, {
8424
+ reminders: {
8425
+ number: number;
8426
+ id: string;
8427
+ content: Record<string, unknown>;
8428
+ title: string;
8429
+ note: string;
8430
+ oId: string;
8431
+ package: string;
8432
+ schoolName: string;
8433
+ sentDay: string;
8434
+ recipientName: string;
8435
+ recipientEmail: string;
8436
+ due: boolean;
8437
+ lifecycleStatus?: string | undefined;
8438
+ lastReminderDay?: string | undefined;
8439
+ topInteraction?: string | undefined;
8440
+ }[];
8441
+ }, {
8442
+ reminders: {
8443
+ number: number;
8444
+ id: string;
8445
+ content: Record<string, unknown>;
8446
+ title: string;
8447
+ note: string;
8448
+ oId: string;
8449
+ package: string;
8450
+ schoolName: string;
8451
+ sentDay: string;
8452
+ recipientName: string;
8453
+ recipientEmail: string;
8454
+ due: boolean;
8455
+ lifecycleStatus?: string | undefined;
8456
+ lastReminderDay?: string | undefined;
8457
+ topInteraction?: string | undefined;
8458
+ }[];
8459
+ }>;
8460
+ };
8461
+ "engagementReminders-sendDraftReminder": {
8462
+ request: z.ZodObject<{
8463
+ id: z.ZodString;
8464
+ }, "strip", z.ZodTypeAny, {
8465
+ id: string;
8466
+ }, {
8467
+ id: string;
8468
+ }>;
8469
+ response: z.ZodObject<{
8470
+ sent: z.ZodLiteral<true>;
8471
+ }, "strip", z.ZodTypeAny, {
8472
+ sent: true;
8473
+ }, {
8474
+ sent: true;
8475
+ }>;
8476
+ };
8477
+ "engagementReminders-stopDraftReminder": {
8478
+ request: z.ZodObject<{
8479
+ id: z.ZodString;
8480
+ }, "strip", z.ZodTypeAny, {
8481
+ id: string;
8482
+ }, {
8483
+ id: string;
8484
+ }>;
8485
+ response: z.ZodObject<{
8486
+ stopped: z.ZodLiteral<true>;
8487
+ }, "strip", z.ZodTypeAny, {
8488
+ stopped: true;
8489
+ }, {
8490
+ stopped: true;
8491
+ }>;
8492
+ };
8249
8493
  "bulkEngagement-clearRenewalEmailTasks": {
8250
8494
  request: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
8251
8495
  response: z.ZodObject<{
@@ -3914,6 +3914,15 @@ export type EmailInteraction = {
3914
3914
  oId?: string;
3915
3915
  messageType?: MessageTypes;
3916
3916
  reminderNumber?: number;
3917
+ /** YYYY-MM-DD the last reminder went, so a reminder approved midweek isn't followed by another days later. */
3918
+ lastReminderDay?: string;
3919
+ /** Written but not sent: an engagement reminder waiting for an admin to send it.
3920
+ * Has no `sent` or `sentDay` until it goes, so anything reading those skips it. */
3921
+ draft?: boolean;
3922
+ /** On a draft: the email it is a reminder of. */
3923
+ draftOf?: string;
3924
+ /** On a draft: which reminder it is. 1 is the first. */
3925
+ draftNumber?: number;
3917
3926
  sendReminders?: boolean;
3918
3927
  remindersPaused?: boolean;
3919
3928
  /** ISO date of the last email from this recipient that paused the reminders. */
@@ -1 +1 @@
1
- {"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;AAq0IA,sDASC;AAeD,oDAKC;AAaD,0CAEC;AA/tED;;;;;kFAKkF;AACrE,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,iBAAiB,GAAG,OAAO,CAAC;AA2oEzC;yEACyE;AAC5D,QAAA,0BAA0B,GAA2C;IAC9E,gBAAgB,EAAE,2BAA2B;IAC7C,mBAAmB,EAAE,sBAAsB;IAC3C,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,yBAAyB;IACxC,aAAa,EAAE,wBAAwB;IACvC,KAAK,EAAE,OAAO;CACjB,CAAC;AAEW,QAAA,0BAA0B,GAA+C;IAClF,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,OAAO;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,SAAsC;IACxE,QAAQ,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;QAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAChC,IAAwC,EACxC,MAA6C;IAE7C,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,KAAK,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAA6D;IACzF,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;AA80IA,sDASC;AAeD,oDAKC;AAaD,0CAEC;AAxuED;;;;;kFAKkF;AACrE,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,iBAAiB,GAAG,OAAO,CAAC;AAopEzC;yEACyE;AAC5D,QAAA,0BAA0B,GAA2C;IAC9E,gBAAgB,EAAE,2BAA2B;IAC7C,mBAAmB,EAAE,sBAAsB;IAC3C,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,yBAAyB;IACxC,aAAa,EAAE,wBAAwB;IACvC,KAAK,EAAE,OAAO;CACjB,CAAC;AAEW,QAAA,0BAA0B,GAA+C;IAClF,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,OAAO;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,SAAsC;IACxE,QAAQ,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;QAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAChC,IAAwC,EACxC,MAA6C;IAE7C,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,KAAK,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAA6D;IACzF,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "placementt-core",
4
4
  "author": "Placementt",
5
- "version": "1.400.1256",
5
+ "version": "1.400.1258",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
@@ -10,6 +10,7 @@ import {
10
10
  BULK_TEST_SCHOOLS,
11
11
  BulkYearSetup,
12
12
  bulkEngagementSuggestion,
13
+ engagementReminderStage,
13
14
  bulkSentAgo,
14
15
  bulkYearSetup,
15
16
  matchesBulkFilters,
@@ -123,6 +124,37 @@ describe("bulkYearSetup", () => {
123
124
  });
124
125
  });
125
126
 
127
+ describe("engagementReminderStage", () => {
128
+ const email = (overrides = {}) => ({sentDay: "2026-10-01", additionalData: {oId: "a", stepKey: "students.route"}, ...overrides});
129
+ const stage = (today: string, overrides = {}) => engagementReminderStage(email(overrides), today);
130
+
131
+ it("stops an email sent without follow-ups", () => {
132
+ expect(stage("2026-10-02", {additionalData: {oId: "a", templateKey: "engagementRenewalCheckIn"}})).toBe("stop");
133
+ });
134
+
135
+ it("treats follow-ups like a step's email", () => {
136
+ expect(stage("2026-10-08", {additionalData: {oId: "a", followUps: true}})).toBe("remind");
137
+ });
138
+
139
+ it("falls due 7, 14 and 21 days after the email", () => {
140
+ expect(stage("2026-10-07")).toBe("wait");
141
+ expect(stage("2026-10-08")).toBe("remind");
142
+ expect(stage("2026-10-14", {reminderNumber: 1, lastReminderDay: "2026-10-08"})).toBe("wait");
143
+ expect(stage("2026-10-15", {reminderNumber: 1, lastReminderDay: "2026-10-08"})).toBe("remind");
144
+ expect(stage("2026-10-22", {reminderNumber: 2, lastReminderDay: "2026-10-15"})).toBe("remind");
145
+ });
146
+
147
+ it("leaves a gap after a reminder sent late", () => {
148
+ expect(stage("2026-10-15", {reminderNumber: 1, lastReminderDay: "2026-10-14"})).toBe("wait");
149
+ expect(stage("2026-10-17", {reminderNumber: 1, lastReminderDay: "2026-10-14"})).toBe("remind");
150
+ });
151
+
152
+ it("finishes a week after the last reminder", () => {
153
+ expect(stage("2026-10-28", {reminderNumber: 3, lastReminderDay: "2026-10-22"})).toBe("wait");
154
+ expect(stage("2026-10-29", {reminderNumber: 3, lastReminderDay: "2026-10-22"})).toBe("finished");
155
+ });
156
+ });
157
+
126
158
  describe("matchesBulkFilters", () => {
127
159
  const trust = {package: "institutes-two", products: ["wex", "destinations"]};
128
160
  const hub = {package: "careersHub", products: ["employerEvents"]};
@@ -1,4 +1,4 @@
1
- import {CohortData, ExternalEvent, InstituteData} from "./typeDefinitions";
1
+ import {CohortData, EmailInteraction, ExternalEvent, InstituteData} from "./typeDefinitions";
2
2
  import {ResolvedProducts} from "./productResolver";
3
3
  import {RENEWAL_FINANCE_TEMPLATES, renewalInfo} from "./renewals";
4
4
  import {emailTemplates} from "./constants";
@@ -223,3 +223,40 @@ export const bulkSentAgo = (day: string, now: Date): string => {
223
223
  if (days <= 0) return "Today";
224
224
  return days === 1 ? "1 day ago" : `${days} days ago`;
225
225
  };
226
+
227
+ /** The days after an engagement email that its reminders fall due. */
228
+ export const ENGAGEMENT_REMINDER_DAYS = [7, 14, 21];
229
+
230
+ /** How many reminders an engagement email gets. */
231
+ export const ENGAGEMENT_REMINDERS = ENGAGEMENT_REMINDER_DAYS.length;
232
+
233
+ /** The fewest days between reminders, for one sent late. */
234
+ export const ENGAGEMENT_REMINDER_MIN_GAP = 3;
235
+
236
+ /** How long after the last reminder an unanswered chain is finished. */
237
+ const CHAIN_END_DAYS = 7;
238
+
239
+ const daysBetween = (from: string, to: string): number => Math.round((Date.parse(`${to.slice(0, 10)}T00:00:00Z`) - Date.parse(`${from.slice(0, 10)}T00:00:00Z`)) / 86400000);
240
+
241
+ /**
242
+ * Where an engagement email's reminders stand today, by the days since it was
243
+ * sent. Every email starts with `sendReminders` on, so one sent without
244
+ * follow-ups is stopped. A reminder sent late can't be followed by the next
245
+ * within ENGAGEMENT_REMINDER_MIN_GAP days.
246
+ *
247
+ * @param {object} email the email interaction.
248
+ * @param {string} today YYYY-MM-DD.
249
+ * @return {string} "remind" when the next reminder is due, "wait" until then,
250
+ * "finished" once the reminders have gone and a week has passed, or "stop".
251
+ */
252
+ export const engagementReminderStage = (
253
+ email: Pick<EmailInteraction, "sentDay"|"lastReminderDay"|"reminderNumber"|"additionalData">,
254
+ today: string,
255
+ ): "remind"|"wait"|"finished"|"stop" => {
256
+ if (!email.additionalData?.stepKey && !email.additionalData?.followUps) return "stop";
257
+ const sent = email.reminderNumber || 0;
258
+ const sinceLast = daysBetween(email.lastReminderDay || email.sentDay, today);
259
+ if (sent >= ENGAGEMENT_REMINDERS) return sinceLast >= CHAIN_END_DAYS ? "finished" : "wait";
260
+ if (daysBetween(email.sentDay, today) < ENGAGEMENT_REMINDER_DAYS[sent]) return "wait";
261
+ return email.lastReminderDay && sinceLast < ENGAGEMENT_REMINDER_MIN_GAP ? "wait" : "remind";
262
+ };
@@ -74,6 +74,47 @@ export const engagementCallables = {
74
74
  results: z.record(z.string(), z.object({sent: z.array(z.string()), error: z.string().optional()})),
75
75
  }),
76
76
  },
77
+ /** The engagement reminders in draft, each with the account's status and the exact email. */
78
+ "engagementReminders-getWaitingReminders": {
79
+ request: z.object({}).optional(),
80
+ response: z.object({
81
+ reminders: z.array(z.object({
82
+ /** The draft's interaction. */
83
+ id: z.string(),
84
+ oId: z.string(),
85
+ schoolName: z.string(),
86
+ package: z.string(),
87
+ lifecycleStatus: z.string().optional(),
88
+ recipientName: z.string(),
89
+ recipientEmail: z.string(),
90
+ /** The original email's name. */
91
+ title: z.string(),
92
+ /** The day the original went, YYYY-MM-DD. */
93
+ sentDay: z.string(),
94
+ lastReminderDay: z.string().optional(),
95
+ /** Which reminder this would be. 1 is the first. */
96
+ number: z.number(),
97
+ /** How the recipient has engaged with the original so far. */
98
+ topInteraction: z.string().optional(),
99
+ /** Whether the checks say it should go. Approving is refused if not. */
100
+ due: z.boolean(),
101
+ /** Why, for the admin. */
102
+ note: z.string(),
103
+ /** The email as it would go, for the previewer. */
104
+ content: z.record(z.string(), z.unknown()),
105
+ })),
106
+ }),
107
+ },
108
+ /** Sends one draft reminder as it stands, after checking again that it should go. */
109
+ "engagementReminders-sendDraftReminder": {
110
+ request: z.object({id: z.string().min(1)}),
111
+ response: z.object({sent: z.literal(true)}),
112
+ },
113
+ /** Deletes a draft reminder and pauses its chain, which can be resumed from the school's email card. */
114
+ "engagementReminders-stopDraftReminder": {
115
+ request: z.object({id: z.string().min(1)}),
116
+ response: z.object({stopped: z.literal(true)}),
117
+ },
77
118
  /** One-off: removes the open renewal email tasks the old automatic schedule made. */
78
119
  "bulkEngagement-clearRenewalEmailTasks": {
79
120
  request: z.object({}).optional(),
@@ -3895,6 +3895,15 @@ export type EmailInteraction = {
3895
3895
  // Email reminders values
3896
3896
  messageType?: MessageTypes, // This will be used to determine which test is necessary to decide to send a reminder
3897
3897
  reminderNumber?: number, // Which of the reminders is this?
3898
+ /** YYYY-MM-DD the last reminder went, so a reminder approved midweek isn't followed by another days later. */
3899
+ lastReminderDay?: string,
3900
+ /** Written but not sent: an engagement reminder waiting for an admin to send it.
3901
+ * Has no `sent` or `sentDay` until it goes, so anything reading those skips it. */
3902
+ draft?: boolean,
3903
+ /** On a draft: the email it is a reminder of. */
3904
+ draftOf?: string,
3905
+ /** On a draft: which reminder it is. 1 is the first. */
3906
+ draftNumber?: number,
3898
3907
  sendReminders?: boolean,
3899
3908
  remindersPaused?: boolean, // Stopped part-way, and can be resumed.
3900
3909
  /** ISO date of the last email from this recipient that paused the reminders. */