@funnelsgrove/emails 0.1.2 → 0.1.7

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.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # @funnelsgrove/emails
2
2
 
3
- Private-token email client for the FunnelsGrove transactional email API.
3
+ Server-side client for FunnelsGrove email delivery and authoring APIs. Transactional
4
+ delivery uses `/sdk/private/emails`; template and sequence authoring use the separate
5
+ `/integration/v1/email` API.
4
6
 
5
7
  ```ts
6
8
  import { createEmailsClient } from '@funnelsgrove/emails';
@@ -18,7 +20,9 @@ const receipt = await emails.send({
18
20
  console.log(receipt.id);
19
21
  ```
20
22
 
21
- The private token is sent as `Authorization: Bearer <token>` and is never intended for browser code. The template must be published in the project first. Project email content is managed through the existing `fgrove email` CLI.
23
+ The project secret token is sent as `Authorization: Bearer <token>` and is never
24
+ intended for browser code. The template must be published in the project first.
25
+ Project email content can also be managed through the existing `fgrove email` CLI.
22
26
 
23
27
  Create and publish a template from Node.js or the CLI:
24
28
 
@@ -57,7 +61,8 @@ const sequence = await emails.createSequence({
57
61
  mode: 'template',
58
62
  template: 'welcome',
59
63
  variables: { firstName: 'first_name' },
60
- delay: { value: 0, unit: 'hours' },
64
+ personalizationEnabled: true,
65
+ delay: { value: 1, unit: 'hours' },
61
66
  }],
62
67
  },
63
68
  });
@@ -69,6 +74,28 @@ await emails.addSequenceStep(sequence.id, {
69
74
  body: 'Come back when you are ready.',
70
75
  delay: { value: 2, unit: 'days' },
71
76
  });
77
+
78
+ await emails.publishSequence(sequence.id);
79
+ await emails.enableSequence(sequence.id);
80
+
81
+ // Stops new enrollments; existing active enrollments remain active.
82
+ await emails.disableSequence(sequence.id);
83
+ ```
84
+
85
+ With personalization enabled, FunnelsGrove emits an `email.personalization_requested`
86
+ project webhook 20 minutes before delivery. Patch only the variables that need fresh
87
+ data; the pinned template is validated and rendered again before it sends:
88
+
89
+ ```ts
90
+ await emails.updateVariables(event.data.deliveryId, {
91
+ firstName: customer.firstName,
92
+ recommendation: customer.recommendation,
93
+ });
94
+ ```
95
+
96
+ ```bash
97
+ fgrove email update-variables "$DELIVERY_ID" \
98
+ --variables '{"firstName":"Ada"}'
72
99
  ```
73
100
 
74
101
  Sequence editing uses the same project CLI with `fgrove email sequence add-step` and local JSON files:
@@ -82,3 +109,17 @@ fgrove email sequence add-step lead-follow-up \
82
109
  --body "Come back when you are ready." \
83
110
  --delay-days 2
84
111
  ```
112
+
113
+ Cancel a user's active enrollment idempotently. A retry returns `cancelled: 0` after the enrollment is already terminal:
114
+
115
+ ```ts
116
+ await emails.cancelSequenceEnrollment(sequence.id, {
117
+ funnelEndUserId: '00000000-0000-4000-8000-000000000000',
118
+ reason: 'customer_request',
119
+ });
120
+ ```
121
+
122
+ ```bash
123
+ fgrove email sequence cancel lead-follow-up \
124
+ --user-id 00000000-0000-4000-8000-000000000000
125
+ ```
package/dist/index.d.ts CHANGED
@@ -17,6 +17,16 @@ export type EmailStatus = EmailReceipt & {
17
17
  sentAt: string | null;
18
18
  failedAt: string | null;
19
19
  };
20
+ export type EmailPersonalization = {
21
+ id: string;
22
+ status: string;
23
+ variables: Record<string, EmailVariable>;
24
+ subject: string;
25
+ html: string;
26
+ text: string;
27
+ dueAt: string;
28
+ updatedAt: string;
29
+ };
20
30
  export type EmailTemplateVariableType = 'string' | 'number' | 'boolean';
21
31
  export type EmailTemplateDraft = {
22
32
  subject: string;
@@ -58,6 +68,8 @@ export type EmailSequenceTemplateStepInput = {
58
68
  mode?: 'template';
59
69
  template: string;
60
70
  variables?: Record<string, EmailVariable>;
71
+ /** Request a webhook 20 minutes before this step sends. */
72
+ personalizationEnabled?: boolean;
61
73
  delay: SequenceDelay;
62
74
  };
63
75
  export type EmailSequenceDirectStepInput = {
@@ -74,6 +86,7 @@ export type EmailSequenceTemplateStep = {
74
86
  mode: 'template';
75
87
  templateVersionId: string;
76
88
  variables: Record<string, EmailVariable>;
89
+ personalizationEnabled: boolean;
77
90
  };
78
91
  export type EmailSequenceDirectStep = {
79
92
  key: string;
@@ -83,18 +96,22 @@ export type EmailSequenceDirectStep = {
83
96
  body: string;
84
97
  };
85
98
  export type EmailSequenceStep = EmailSequenceTemplateStep | EmailSequenceDirectStep;
99
+ export type EmailSequenceExitEventType = 'purchase_completed' | 'registration_completed';
86
100
  export type EmailSequenceDraftInput = {
87
101
  triggerEventType: 'email_captured' | 'purchase_completed' | 'registration_completed';
88
102
  /** Empty means this sequence runs for every funnel in the project. */
89
103
  funnelIds?: string[];
90
104
  steps: EmailSequenceStepInput[];
91
- exitEventTypes?: Array<'email_captured' | 'purchase_completed' | 'registration_completed'>;
105
+ exitEventTypes?: EmailSequenceExitEventType[];
106
+ /** Keep enabled for marketing and subscription email. Defaults to true. */
107
+ unsubscribeEnabled?: boolean;
92
108
  };
93
109
  export type EmailSequenceDraft = {
94
110
  triggerEventType: EmailSequenceDraftInput['triggerEventType'];
95
111
  funnelIds: string[];
96
112
  steps: EmailSequenceStep[];
97
113
  exitEventTypes: NonNullable<EmailSequenceDraftInput['exitEventTypes']>;
114
+ unsubscribeEnabled: boolean;
98
115
  };
99
116
  export type EmailSequence = {
100
117
  id: string;
@@ -125,6 +142,11 @@ export type CreateSequenceInput = {
125
142
  name: string;
126
143
  draft: EmailSequenceDraftInput;
127
144
  };
145
+ export type EmailSequenceCancellation = {
146
+ sequenceId: string;
147
+ funnelEndUserId: string;
148
+ cancelled: number;
149
+ };
128
150
  export declare class EmailsApiError extends Error {
129
151
  readonly status: number;
130
152
  constructor(status: number, message: string);
@@ -152,6 +174,7 @@ export declare class EmailsClient {
152
174
  constructor(options: EmailsClientOptions);
153
175
  send(input: SendEmailInput): Promise<EmailReceipt>;
154
176
  get(deliveryId: string): Promise<EmailStatus>;
177
+ updateVariables(deliveryId: string, variables: Record<string, EmailVariable>): Promise<EmailPersonalization>;
155
178
  private request;
156
179
  listTemplates(): Promise<EmailTemplate[]>;
157
180
  getTemplate(templateId: string): Promise<EmailTemplateDetail>;
@@ -189,5 +212,11 @@ export declare class EmailsClient {
189
212
  sequence: EmailSequence;
190
213
  version: EmailSequenceVersion;
191
214
  }>;
215
+ enableSequence(sequenceId: string): Promise<EmailSequence>;
216
+ disableSequence(sequenceId: string): Promise<EmailSequence>;
217
+ cancelSequenceEnrollment(sequenceId: string, input: {
218
+ funnelEndUserId: string;
219
+ reason?: string;
220
+ }): Promise<EmailSequenceCancellation>;
192
221
  }
193
222
  export declare const createEmailsClient: (options: EmailsClientOptions) => EmailsClient;
package/dist/index.js CHANGED
@@ -60,6 +60,9 @@ export class EmailsClient {
60
60
  throw new EmailsApiError(response.status, errorMessage(body));
61
61
  return body;
62
62
  }
63
+ async updateVariables(deliveryId, variables) {
64
+ return this.request(`/sdk/private/emails/${encodeURIComponent(deliveryId)}/variables`, { method: 'PATCH', body: JSON.stringify({ variables }) });
65
+ }
63
66
  async request(path, init = {}) {
64
67
  const response = await this.fetchFn(`${this.apiUrl}${path}`, {
65
68
  ...init,
@@ -75,61 +78,73 @@ export class EmailsClient {
75
78
  return body;
76
79
  }
77
80
  async listTemplates() {
78
- return this.request('/sdk/private/templates');
81
+ return this.request('/integration/v1/email/templates');
79
82
  }
80
83
  async getTemplate(templateId) {
81
- return this.request(`/sdk/private/templates/${encodeURIComponent(templateId)}`);
84
+ return this.request(`/integration/v1/email/templates/${encodeURIComponent(templateId)}`);
82
85
  }
83
86
  async createTemplate(input) {
84
- return this.request('/sdk/private/templates', {
87
+ return this.request('/integration/v1/email/templates', {
85
88
  method: 'POST',
86
89
  body: JSON.stringify(input),
87
90
  });
88
91
  }
89
92
  async updateTemplate(templateId, input) {
90
- return this.request(`/sdk/private/templates/${encodeURIComponent(templateId)}`, {
93
+ return this.request(`/integration/v1/email/templates/${encodeURIComponent(templateId)}`, {
91
94
  method: 'PATCH',
92
95
  body: JSON.stringify(input),
93
96
  });
94
97
  }
95
98
  async validateTemplate(templateId) {
96
- return this.request(`/sdk/private/templates/${encodeURIComponent(templateId)}/validate`, { method: 'POST' });
99
+ return this.request(`/integration/v1/email/templates/${encodeURIComponent(templateId)}/validate`, { method: 'POST' });
97
100
  }
98
101
  async previewTemplate(templateId, values) {
99
- return this.request(`/sdk/private/templates/${encodeURIComponent(templateId)}/preview`, {
102
+ return this.request(`/integration/v1/email/templates/${encodeURIComponent(templateId)}/preview`, {
100
103
  method: 'POST',
101
104
  body: JSON.stringify({ values }),
102
105
  });
103
106
  }
104
107
  async sendTemplateTest(templateId, recipientEmail, values) {
105
- return this.request(`/sdk/private/templates/${encodeURIComponent(templateId)}/test-send`, {
108
+ return this.request(`/integration/v1/email/templates/${encodeURIComponent(templateId)}/test-send`, {
106
109
  method: 'POST',
107
110
  body: JSON.stringify({ recipientEmail, values }),
108
111
  });
109
112
  }
110
113
  async publishTemplate(templateId) {
111
- return this.request(`/sdk/private/templates/${encodeURIComponent(templateId)}/publish`, { method: 'POST' });
114
+ return this.request(`/integration/v1/email/templates/${encodeURIComponent(templateId)}/publish`, { method: 'POST' });
112
115
  }
113
116
  async listSequences() {
114
- return this.request('/sdk/private/sequences');
117
+ return this.request('/integration/v1/email/sequences');
115
118
  }
116
119
  async getSequence(sequenceId) {
117
- return this.request(`/sdk/private/sequences/${encodeURIComponent(sequenceId)}`);
120
+ return this.request(`/integration/v1/email/sequences/${encodeURIComponent(sequenceId)}`);
118
121
  }
119
122
  async createSequence(input) {
120
- return this.request('/sdk/private/sequences', { method: 'POST', body: JSON.stringify(input) });
123
+ return this.request('/integration/v1/email/sequences', { method: 'POST', body: JSON.stringify(input) });
121
124
  }
122
125
  async updateSequence(sequenceId, input) {
123
- return this.request(`/sdk/private/sequences/${encodeURIComponent(sequenceId)}`, { method: 'PATCH', body: JSON.stringify(input) });
126
+ return this.request(`/integration/v1/email/sequences/${encodeURIComponent(sequenceId)}`, { method: 'PATCH', body: JSON.stringify(input) });
124
127
  }
125
128
  async addSequenceStep(sequenceId, step) {
126
- return this.request(`/sdk/private/sequences/${encodeURIComponent(sequenceId)}/steps`, { method: 'POST', body: JSON.stringify(step) });
129
+ return this.request(`/integration/v1/email/sequences/${encodeURIComponent(sequenceId)}/steps`, { method: 'POST', body: JSON.stringify(step) });
127
130
  }
128
131
  async validateSequence(sequenceId) {
129
- return this.request(`/sdk/private/sequences/${encodeURIComponent(sequenceId)}/validate`, { method: 'POST' });
132
+ return this.request(`/integration/v1/email/sequences/${encodeURIComponent(sequenceId)}/validate`, { method: 'POST' });
130
133
  }
131
134
  async publishSequence(sequenceId) {
132
- return this.request(`/sdk/private/sequences/${encodeURIComponent(sequenceId)}/publish`, { method: 'POST' });
135
+ return this.request(`/integration/v1/email/sequences/${encodeURIComponent(sequenceId)}/publish`, { method: 'POST' });
136
+ }
137
+ async enableSequence(sequenceId) {
138
+ return this.request(`/integration/v1/email/sequences/${encodeURIComponent(sequenceId)}/enable`, { method: 'POST' });
139
+ }
140
+ async disableSequence(sequenceId) {
141
+ return this.request(`/integration/v1/email/sequences/${encodeURIComponent(sequenceId)}/disable`, { method: 'POST' });
142
+ }
143
+ async cancelSequenceEnrollment(sequenceId, input) {
144
+ return this.request(`/integration/v1/email/sequences/${encodeURIComponent(sequenceId)}/enrollments/${encodeURIComponent(input.funnelEndUserId)}/cancel`, {
145
+ method: 'POST',
146
+ body: JSON.stringify(input.reason === undefined ? {} : { reason: input.reason }),
147
+ });
133
148
  }
134
149
  }
135
150
  export const createEmailsClient = (options) => new EmailsClient(options);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@funnelsgrove/emails",
3
- "version": "0.1.2",
4
- "description": "FunnelsGrove private email API client",
3
+ "version": "0.1.7",
4
+ "description": "FunnelsGrove server-side email delivery and integration API client",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/The-Solid-Grove/funnelsgrove.git",