sendwithus node-client
Installation
npm install sendwithus
Usage
All callbacks accept err
and data
:
var callback = function(err, data) {
if (err) {
console.log(err, err.statusCode);
} else {
console.log(data);
}
};
List Your Emails
var api = require('sendwithus')('API_KEY');
api.emails(callback);
Send an Email
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: 'us@sendwithus.com'}
}, callback);
Call with REQUIRED parameters and email_data
var api = require('sendwithus')('API_KEY');
api.send({
email_id: 'EMAIL_ID',
recipient: {
address: 'us@sendwithus.com', // 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: 'us@sendwithus.com'},
email_data: { first_name: 'Matt' },
sender: {
address: 'company@company.com', // 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: 'us@sendwithus.com'},
email_data: { first_name: 'Matt' },
sender: {
address: 'company@company.com', // required
name: 'Company',
reply_to: 'info@company.com'
}
}, callback);
Optional BCC/CC
var api = require('sendwithus')('API_KEY');
api.send({
email_id: EMAIL_ID,
recipient: { address: 'us@sendwithus.com'},
bcc: [{ address: 'bcc@sendwithus.com' }],
cc: [
{ address: 'cc1@sendwithus.com' },
{ address: 'cc2@sendwithus.com' }
]
}, callback);
Update or Create a Customer
var api = require('sendwithus')('API_KEY');
api.customersUpdateOrCreate({ email: 'foo@bar.com', data: { name: 'Bob' } }, callback);
Delete a Customer
var api = require('sendwithus')('API_KEY');
api.customersDelete('foo@bar.com', 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('foo@bar.com', 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' };
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