@funnelsgrove/emails
v0.1.2
Published
FunnelsGrove private email API client
Readme
@funnelsgrove/emails
Private-token email client for the FunnelsGrove transactional email API.
import { createEmailsClient } from '@funnelsgrove/emails';
const emails = createEmailsClient({
privateToken: process.env.FUNNELSGROVE_PRIVATE_TOKEN!,
});
const receipt = await emails.send({
template: 'login-code',
to: '[email protected]',
variables: { code: '481953', expiresInMinutes: 10 },
});
console.log(receipt.id);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.
Create and publish a template from Node.js or the CLI:
await emails.createTemplate({
slug: 'order-confirmation',
name: 'Order confirmation',
draft: {
subject: 'Order {{ORDER_ID}}',
previewText: null,
html: '<p>Order {{ORDER_ID}}</p>',
text: 'Order {{ORDER_ID}}',
variables: { ORDER_ID: 'string' },
},
});fgrove email pull --workspace "$WORKSPACE" --project "$PROJECT"
fgrove email validate --dir .
fgrove email push --workspace "$WORKSPACE" --project "$PROJECT"
fgrove email template publish order-confirmation --workspace "$WORKSPACE" --project "$PROJECT"Sequence steps can use a published template or direct subject/body copy. Delays stay simple: hours or days. An empty funnelIds list applies to all funnels:
const sequence = await emails.createSequence({
slug: 'lead-follow-up',
name: 'Lead follow-up',
draft: {
triggerEventType: 'email_captured',
funnelIds: [],
steps: [{
key: 'welcome',
mode: 'template',
template: 'welcome',
variables: { firstName: 'first_name' },
delay: { value: 0, unit: 'hours' },
}],
},
});
await emails.addSequenceStep(sequence.id, {
key: 'reminder',
mode: 'direct',
subject: 'A quick reminder',
body: 'Come back when you are ready.',
delay: { value: 2, unit: 'days' },
});Sequence editing uses the same project CLI with fgrove email sequence add-step and local JSON files:
fgrove email sequence add-step lead-follow-up \
--workspace "$WORKSPACE" \
--project "$PROJECT" \
--key reminder \
--subject "A quick reminder" \
--body "Come back when you are ready." \
--delay-days 2