Skip to content

NodeJS library to interact with the iterable.com API.

License

Notifications You must be signed in to change notification settings

hsharif-rh/iterable-api

 
 

Repository files navigation

Node Iterable API

JavaScript Style Guide Node CI Coverage Status npm version Known Vulnerabilities

Credit: seanmcgary/iterable

Install

npm install node-iterable-api

Example

const client = require('node-iterable-api').create('<iterable api key>')

return client.lists.get()
  .then(res => {
    console.log(res.lists)
  })
  .catch(err => {
    console.log(err)
  })

Resources

All resources are taken from those available in the Iterable API documentation.

Note: Not all resources are implemented yet. You can see which ones in lib/api.js.

Resources are addressable by calling:

// If param is a string, it'll append it to the resource path
// Otherwise you can just past an object that will either be
// passed to the body on a POST/PUT request, or as query
// string params in the case of a GET request
iterableInstance[<resource name>][<resource action>](param[, payload])

// e.g. to get lists:
iterableInstace.lists.get()
  .then(data => {
	// data response
  })

// e.g. bulk update users
iterableInstace.users.bulkUpdate({
	users: [
        {
            email: '[email protected]',
            dataFields: {
                // some data fields
            },
            userId: "someUserId"
        }
	]
})

Currently implemented resources are as follows:

lists
  GET    - /lists
  POST   - /lists
  DELETE - /lists
  GET    - /lists/getUsers
  POST   - /lists/subscribe
  POST   - /lists/unsubscribe
events
  GET    - /events
  POST   - /events/track
  POST   - /events/trackBulk
  POST   - /events/trackInAppOpen
  POST   - /events/trackInAppClick
  POST   - /events/trackWebPushClick
  POST   - /events/trackPushOpen
users
  GET    - /users
  DELETE - /users
  POST   - /users/update
  POST   - /users/updateEmail
  POST   - /users/bulkUpdate
  POST   - /users/registerDeviceToken
  POST   - /users/updateSubscriptions
  POST   - /users/bulkUpdateSubscriptions
  GET    - /users/getFields
  GET    - /users/getSentMessages
  POST   - /users/disableDevice
inApp
  GET    - /inApp/getMessages
push
  POST   - /push/target
campaigns
  POST   - /campaigns/create
channels
  GET    - /channels
commerce
  POST   - /commerce/trackPurchase
  POST   - /commerce/updateCart
email
  GET    - /email/viewInBrowser
  POST   - /email/target
workflows
  POST   - /workflows/triggerWorkflow
sms
  POST   - /sms/target
webPush
  POST   - /webPush/target
messageTypes
  GET    - /messageTypes
experiments
  GET    - /experiments/metrics
catalogs
  GET    - /catalogs
  POST   - /catalogs
  DELETE - /catalogs
catalogs.fieldMappings
  GET    - /catalogs/{catalogName}/fieldMappings
  PUT    - /catalogs/{catalogName}/fieldMappings
catalogs.items
  GET    - /catalogs/{catalogName}/items
  PUT    - /catalogs/{catalogName}/items
  POST   - /catalogs/{catalogName}/items
  PATCH  - /catalogs/{catalogName}/items
  DELETE - /catalogs/{catalogName}/items
subscriptions
  PUT    - /subscriptions
subscriptions.user
  PATCH  - /subscriptions/{subscriptionGroup}/{subscriptionGroupId}/user
  DELETE - /subscriptions/{subscriptionGroup}/{subscriptionGroupId}/user

Development

To run the full tests with coverage:

npm test

To run test driven development:

npm run tdd

To list the implemented resources:

node index.js

Contributors

About

NodeJS library to interact with the iterable.com API.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%