Giter VIP home page Giter VIP logo

sendwithus_nodejs's Introduction

sendwithus node-client

Build Status

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 sendwithus
  • response: 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

sendwithus_nodejs's People

Contributors

bvanvugt avatar cusmith avatar demoore avatar despairblue avatar flipcodes avatar gschier avatar illizian avatar mrmch avatar nrempel avatar troymcginnis avatar zambonilli avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.