sendwithus node-client
Installation
npm install sendwithus
Usage
All callbacks accept err
and response
:
var callback = function(err, response) {
if (err) {
console.log(err.statusCode, response);
} else {
console.log(response);
}
};
List Your Emails
var api = require('sendwithus')('API_KEY');
api.emails(callback);
Send an Email
NOTE - If a customer does not exist by the specified email (recipient address), the send call will create a customer.
- email_id -- Template ID to send
- recipient
- address -- The recipient's email address
- name (optional) -- The recipient's name
- email_data -- Object containing email template data
- sender (optional)
- address -- The sender's email address
- reply_to (optional) -- The sender's reply-to address
- name (optional) -- The sender's name
- cc (optional) -- An array of CC recipients, of the format {"address":"[email protected]"}
- bcc (optional) -- An array of BCC recipients, of the format {"address":"[email protected]"}
Call with REQUIRED parameters only
The email_data
field is optional, but highly recommended!
var api = require('sendwithus')('API_KEY');
api.send({
email_id: 'EMAIL_ID',
recipient: { address: '[email protected]'}
}, callback);
Call with REQUIRED parameters and email_data
var api = require('sendwithus')('API_KEY');
api.send({
email_id: 'EMAIL_ID',
recipient: {
address: '[email protected]', // required
name: 'Matt and Brad'
},
email_data: { first_name: 'Matt' }
}, callback);
Optional Sender
sender['address']
is a required sender field
var api = require('sendwithus')('API_KEY');
api.send({
email_id: 'EMAIL_ID',
recipient: { address: '[email protected]'},
email_data: { first_name: 'Matt' },
sender: {
address: '[email protected]', // required
name: 'Company'
}
}, callback);
Optional Sender with reply_to address
sender['name']
and sender['reply_to']
are both optional
var api = require('sendwithus')('API_KEY');
api.send({
email_id: 'EMAIL_ID',
recipient: { address: '[email protected]'},
email_data: { first_name: 'Matt' },
sender: {
address: '[email protected]', // required
name: 'Company',
reply_to: '[email protected]'
}
}, callback);
Optional BCC/CC
var api = require('sendwithus')('API_KEY');
api.send({
email_id: EMAIL_ID,
recipient: { address: '[email protected]'},
bcc: [{ address: '[email protected]' }],
cc: [
{ address: '[email protected]' },
{ address: '[email protected]' }
]
}, callback);
Update or Create a Customer
var api = require('sendwithus')('API_KEY');
api.customersUpdateOrCreate({ email: '[email protected]', data: { name: 'Bob' } }, callback);
Delete a Customer
var api = require('sendwithus')('API_KEY');
api.customersDelete('[email protected]', callback);
Conversion Event
You can use the Conversion API to track conversion and revenue data events against your sent emails
NOTE: Revenue is in cents (eg. $100.50 = 10050)
var api = require('sendwithus')('API_KEY');
var conversionData = { 'revenue': 10050 };
api.conversionEvent('[email protected]', conversionData, callback);
List Segments
var api = require('sendwithus')('API_KEY');
api.segments(callback);
Run a Segment
var api = require('sendwithus')('API_KEY');
api.segmentsRun('SEGMENT_ID', callback);
Send Email to a Segment
var api = require('sendwithus')('API_KEY');
var data = { email_id: 'EMAIL_ID', email_data: { subject: 'Hello World' } };
api.segmentsSend(SEGMENT_ID, data, callback);
List Drip Campaigns
var api = require('sendwithus')('API_KEY');
api.dripCampaignList(callback);
Show Drip Campaign Details
var api = require('sendwithus')('API_KEY');
api.dripCampaignDetails('DRIP_CAMPAIGN_ID', callback);
Start Customer on a Drip Campaign
var api = require('sendwithus')('API_KEY');
var data = {
recipient: {
address: 'RECIPIENT_ADDRESS',
name: 'RECIPIENT_NAME'
},
email_data: {
country: 'Latveria'
}
}
api.dripCampaignActivate('DRIP_CAMPAIGN_ID', data, callback);
Remove Customer from a Single Drip Campaign
var api = require('sendwithus')('API_KEY');
var data = { recipient_address: 'RECIPIENT_ADDRESS' };
api.dripCampaignDeactivate('DRIP_CAMPAIGN_ID', data, callback);
Remove Customer from All Drip Campaigns
var api = require('sendwithus')('API_KEY');
var data = { recipient_address: 'RECIPIENT_ADDRESS' };
api.dripCampaignDeactivateAll(data, callback);
expected response
Error cases
malformed request
> err.statusCode;
400
bad api key
> err.statusCode;
403
Events
request: function(method, url, headers, body)
- emitted when a request has been sent to sendwithusresponse: function(statusCode, body, response)
- emitted when a response has been received back from sendwithus
Templates
Create Template
var api = require('sendwithus')('API_KEY');
var data = { name: 'name', subject: 'subject', html: '<html><head></head><body></body></html>', text: 'some text' };
api.createTemplate(data, callback);
Create Template Version
var api = require('sendwithus')('API_KEY');
var data = { name: 'name', subject: 'subject', html: '<html><head></head><body></body></html>', text: 'some text' };
api.createTemplateVersion(TEMPLATE_ID, data, callback);
Run Tests
Install requirements
npm install
Run Unit Tests
npm test