Skip to content

Commit c345482

Browse files
authored
feat: Add sequence step list and template list (#234)
* add Outreach sequence and template lists * remove passthrough
1 parent 295f12f commit c345482

File tree

3 files changed

+127
-1
lines changed

3 files changed

+127
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@vesselapi/integrations",
3-
"version": "1.0.23",
3+
"version": "1.0.24",
44
"description": "Vessel integrations",
55
"main": "dist/index.js",
66
"module": "dist/index.mjs",

src/platforms/outreach/client.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,31 @@ export const client = {
340340
),
341341
},
342342
sequenceSteps: {
343+
list: request(
344+
({
345+
cursor,
346+
filters,
347+
include,
348+
}: {
349+
cursor?: `${typeof BASE_URL}/${string}`;
350+
filters?: { sequenceIds?: string };
351+
include?: string;
352+
}) => ({
353+
url: cursor ?? `/sequenceSteps`,
354+
query: shake({
355+
'page[size]': `${DEFAULT_PAGE_SIZE}`,
356+
'filter[sequence][id]': filters?.sequenceIds,
357+
include,
358+
}),
359+
method: 'GET',
360+
schema: z.intersection(
361+
z.object({
362+
data: z.array(outreachSequenceStep),
363+
}),
364+
outreachPaginatedResponse,
365+
),
366+
}),
367+
),
343368
create: request(
344369
(sequenceStep: {
345370
attributes: {
@@ -412,6 +437,31 @@ export const client = {
412437
),
413438
},
414439
sequenceTemplates: {
440+
list: request(
441+
({
442+
cursor,
443+
filters,
444+
include,
445+
}: {
446+
cursor?: `${typeof BASE_URL}/${string}`;
447+
filters?: { ids?: string };
448+
include?: string;
449+
}) => ({
450+
url: cursor ?? `/sequenceTemplates`,
451+
query: shake({
452+
'page[size]': `${DEFAULT_PAGE_SIZE}`,
453+
'filter[id]': filters?.ids,
454+
include,
455+
}),
456+
method: 'GET',
457+
schema: z.intersection(
458+
z.object({
459+
data: z.array(outreachSequenceTemplate),
460+
}),
461+
outreachPaginatedResponse,
462+
),
463+
}),
464+
),
415465
create: request(
416466
(sequenceTemplate: {
417467
attributes: {

src/platforms/outreach/schemas.ts

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,14 +153,90 @@ export const outreachMailing = z.object({
153153

154154
export const outreachSequenceStep = custom.object({
155155
id: z.number(),
156+
attributes: z.object({
157+
bounceCount: z.number().nullable(),
158+
clickCount: z.number().nullable(),
159+
createdAt: custom.date().nullable(),
160+
date: custom.date().nullable(),
161+
deliverCount: z.number().nullable(),
162+
displayName: z.string().nullable(),
163+
failureCount: z.number().nullable(),
164+
interval: z.number().nullable(),
165+
negativeReplyCount: z.number().nullable(),
166+
neutralReplyCount: z.number().nullable(),
167+
openCount: z.number().nullable(),
168+
optOutCount: z.number().nullable(),
169+
order: z.number().nullable(),
170+
positiveReplyCount: z.number().nullable(),
171+
replyCount: z.number().nullable(),
172+
scheduleCount: z.number().nullable(),
173+
stepType: z.string().nullable(),
174+
taskAutoskipDelay: z.number().nullable(),
175+
taskNote: z.string().nullable(),
176+
updatedAt: custom.date().nullable(),
177+
}),
178+
relationships: z.object({
179+
sequence: outreachRelationship.nullable(),
180+
sequenceTemplates: outreachRelationship.nullable(),
181+
}),
156182
});
157183

158184
export const outreachTemplate = custom.object({
159185
id: z.number(),
186+
attributes: z.object({
187+
archived: z.boolean().nullable(),
188+
archivedAt: custom.date().nullable(),
189+
bccRecipients: z.string().nullable(),
190+
bodyHtml: z.string().nullable(),
191+
bodyText: z.string().nullable(),
192+
bounceCount: z.number().nullable(),
193+
ccRecipients: z.string().nullable(),
194+
clickCount: z.number().nullable(),
195+
createdAt: custom.date().nullable(),
196+
deliverCount: z.number().nullable(),
197+
failureCount: z.number().nullable(),
198+
lastUsedAt: custom.date().nullable(),
199+
name: z.string().nullable(),
200+
negativeReplyCount: z.number().nullable(),
201+
neutralReplyCount: z.number().nullable(),
202+
openCount: z.number().nullable(),
203+
optOutCount: z.number().nullable(),
204+
positiveReplyCount: z.number().nullable(),
205+
replyCount: z.number().nullable(),
206+
scheduleCount: z.number().nullable(),
207+
shareType: z.string().nullable(),
208+
subject: z.string().nullable(),
209+
tags: z.string().nullable(),
210+
toRecipients: z.string().nullable(),
211+
trackLinks: z.boolean().nullable(),
212+
trackOpens: z.boolean().nullable(),
213+
updatedAt: custom.date().nullable(),
214+
}),
160215
});
161216

162217
export const outreachSequenceTemplate = custom.object({
163218
id: z.number(),
219+
attributes: z.object({
220+
bounceCount: z.number().nullable(),
221+
clickCount: z.number().nullable(),
222+
createdAt: custom.date().nullable(),
223+
deliverCount: z.number().nullable(),
224+
enabled: z.boolean().nullable(),
225+
enabledAt: custom.date().nullable(),
226+
failureCount: z.number().nullable(),
227+
isReply: z.boolean().nullable(),
228+
negativeReplyCount: z.number().nullable(),
229+
neutralReplyCount: z.number().nullable(),
230+
openCount: z.number().nullable(),
231+
optOutCount: z.number().nullable(),
232+
positiveReplyCount: z.number().nullable(),
233+
replyCount: z.number().nullable(),
234+
scheduleCount: z.number().nullable(),
235+
updatedAt: custom.date().nullable(),
236+
}),
237+
relationships: z.object({
238+
template: outreachTemplate.nullable(),
239+
}),
164240
});
165241

166242
export type OutreachProspect = z.infer<typeof outreachProspect>;

0 commit comments

Comments
 (0)