npm install mautic --save
Unofficial Node.js bindings to the Mautic REST API - https://developer.mautic.org/#rest-api
Built with ❤ by FieldControl and contributors - We are hiring
❗ | WIP: Working in progress and we need you, pull requests are welcome. |
---|
This client is intended for server side use only.
npm install mautic --save
You can play and watch everything working at bin/playground.js:
node bin/playground.js
const Mautic = require('mautic')
const client = new Mautic({
baseUrl: 'http://mautic-instance/api',
auth: {
username: 'luiz',
password: 'shhhhhhhhhhhhhh!:x'
}
})
// Get contact by id
const response = await client.contacts.get(contactId)
// List contacts
const response = await client.contacts.list()
// List contacts with a search
const response = await client.contacts.list({ search: 'exemple@exemple.com' })
// Create contact
const response = await client.contacts.create({
firstname: 'Luiz',
lastname: 'Freneda',
email: 'luiz@freneda.com.br',
owner: 1
})
// Delete contact
const response = await client.contacts.delete(contactId)
// Edit contact
const response = await client.contacts.edit(contactId, {
firstname: 'Luiz',
lastname: 'Freneda',
email: 'luiz@freneda.com.br',
owner: 1
})
// If the given id exists, clear all contact info and push with new ones, if not, create a contact
const response = await client.contacts.editOrCreate(contactId, {
firstname: 'Luiz',
lastname: 'Freneda',
email: 'luiz@freneda.com.br',
owner: 1
})
// Add points to a contact
const response = await client.contacts.addPoints(contactId, 10)
// Remove points of a contact
const response = await client.contacts.subtractPoints(contactId, 10)
// Get notes
const response = await client.contacts.getNotes(contactId)
// Get Activity Events
const response = await client.contacts.getActivityEvents(contactId)
// Get Companies of a contact
const response = await client.contacts.getCompanies(contactId)
// Add UTM tags
const response = await client.contacts.addUTMTags(contactId, {
utm_campaign: 'utm campaign tag',
utm_source: 'utm source tag',
utm_medium: 'utm medium tag',
utm_content: 'utm content tag',
utm_term: 'utm term tag'
})
// Remove UTM tag
const response = await client.contacts.removeUTMTags(contactId, utmId)
// List segments of a contact
const response = await client.contacts.listSegments(contactId)
// Add contact to segment
const response = await client.segments.addContact(1, 2) // segmentId, contactId
// Remove contact of segment
const response = await client.segments.removeContact(1, 2) // segmentId, contactId
// Get company by id
const response = await client.companies.get(1) // companyId
// List companies
const response = await client.companies.list({
name: 'Field Control'
})
// Create a company
const response = await client.companies.create(2) // company
// Edit a company
const response = await client.companies.edit(1, 2) // companyId, company
// If the given id exists, clear all company info and push with new ones, if not, create a company
const response = await client.companies.editOrCreate(1, 2) // companyId, company
// Delete a company
const response = await client.companies.delete(1) // companyId
// Add a contact to a company
const response = await client.companies.addContact(1, 2) // companyId, contactId
// Remove a contact of a company
const response = await client.companies.removeContact(1, 2) // companyId, contactId
- Add tests! Your patch won't be accepted if it doesn't have tests.
- Document any change in behaviour. Make sure the README and any other relevant documentation are kept up-to-date.
- Create topic branches. Don't ask us to pull from your master branch.
- One pull request per feature. If you want to do more than one thing, send multiple pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
Open source, from Field Control with ❤ - We are hiring!