Node.js (npm package)

Send emails with even less code from your node.js application by using the Waypoint npm package. In addition to being a helpful API wrapper, this npm package provides alias functions that enforce typescript payloads.

Install the npm package

npm install @usewaypoint/client --save

Setup

Import and initialize a client

Learn more about setting up API keys.

const { createClient } = require("@usewaypoint/client"); const client = createClient(API_KEY_USERNAME, API_KEY_PASSWORD);

Send a templated message

Learn more about sending a message with a template.

await client.emailMessages.createTemplated({ templateId: // template id example: 'wptemplate_xxxxxxxxxxxxxxxx', to: // email address of recipient, variables: // variables expected by the template, });

Code example

const { createClient } = require("@usewaypoint/client"); const client = createClient(API_KEY_USERNAME, API_KEY_PASSWORD); client.emailMessages.createTemplated({ templateId: "wptemplate_ABc123XYZ", to: 'Jordan Isip <jordan@usewaypoint.com>', variables: { "passcode": "1234510", "expiresIn": "45 minutes" } });

Additional options for sending

Send a sandbox message

Learn more about sending sandbox test requests.

await client.sandboxEmailMessages.createTemplated({ templateId: // template id example: 'wptemplate_xxxxxxxxxxxxxxxx', to: // email address of recipient, variables: // variables expected by the template });

Send a message without a template

Learn more about sending a message without a template.

await client.emailMessages.createRaw({ to: // email address of recipient, subject: 'Hello', bodyHtml: '<h1>Hello world</h1>' });

Send a sandbox message without a template

Learn more about sending sandbox requests.

await client.sandboxEmailMessages.createRaw({ to: // email address of recipient, subject: 'Hello', bodyHtml: '<h1>Hello world</h1>' });

Downloading/previewing a template

Learn more about previewing templates.

await client.templates.previewHtml( 'wptemplate_RXL7zGTGsvkXzAP3', { "passcode": "1234510", "expiresIn": "45 minutes" } );