A sleek and powerful library to effortlessly bridge Node.js with Zoho CRM, featuring easy OAuth handling, seamless CRUD operations, and comprehensive management of contacts, leads, and more.
To use zoho-library
, start by installing the package in your Node.js project:
npm install zoho-library
Next, initialize the library with your Zoho CRM credentials:
const { ZohoCRM } = require('zoho-library')
const zoho = new ZohoCRM({
clientId: '<YOUR_CLIENT_ID>',
clientSecret: '<YOUR_CLIENT_SECRET>',
refreshToken: '<YOUR_REFRESH_TOKEN>',
})
Authenticate with Zoho CRM:
zoho.authenticate()
.then(() => console.log('Authentication successful!');)
.catch((error) => console.error('Authentication failed:', error););
You can obtain your Zoho CRM credentials (Client ID, Client Secret, and Refresh Token) by following the instructions on the Zoho API documentation.
Here are some examples of what you can do with zoho-library:
// Get all modules
zoho.modules.get()
// Get a single record
zoho.records.getOne({
moduleName: string
recordId: string
fields?: string[]
})
// Get all records
zoho.records.getAll({
moduleName: string
fields: string[]
ids?: string[]
page?: number
perPage?: number
pageToken?: string
sortOrder?: 'asc' | 'desc'
sortBy?: 'id' | 'Created_Time' | 'Updated_Time'
})
// Search records
zoho.records.search({
moduleName: string
criteria?: Array<string,Array>
email?: string
phone?: string
word?: string
fields?: string[]
page?: number
perPage?: number
})
// Search records example
zoho.records.search({
moduleName: 'Leads',
criteria: [
'Lead_Source:equals:Apollo.io',
['or', 'Company:equals:Google', 'Company:equals:Apple']
] // ((Lead_Source:equals:Apollo.io)and((Company:equals:Google)or(Company:equals:Apple)))
})
// Create a new record
zoho.records.create({
moduleName: string
data: object[]
})
// Update a record
zoho.records.update({
moduleName: string
recordId: string
data: Array<object>
})
// Bulk update records
zoho.records.bulkUpdate({
moduleName: string
data: RecordUpdate[]
})
// Delete a record
zoho.records.delete({
moduleName: string
ids: string[]
})
// Upsert a record
zoho.records.upsert({
moduleName: string
data: Array<object>
})
// Get deleted records
zoho.records.getDeleted({
moduleName: string
type?: 'all' | 'recycle' | 'permanent'
page?: number
perPage?: number
})
// Get record count in a module
zoho.records.getCountInModule({
moduleName: string
criteria?: string[]
email?: string
phone?: string
word?: string
})
// Get record timeline
zoho.records.getTimeline({
moduleName: string
recordId: string
perPage: number
pageToken: string
})
// Get file details
zoho.files.get({
id: string
})
// Upload a file
zoho.files.upload({
filePath: string
isImage: boolean
})
// Download attachment
zoho.attachments.download({
moduleName: string
recordId: string
attachmentId: string
})
// Send an email
zoho.emails.sendMail({
moduleName: string
recordId: string
from: { userName: string, email: string }
to: Array<{ userName: string, email: string }>
cc?: Array<{ userName: string, email: string }>
bcc?: Array<{ userName: string, email: string }>
replyTo?: { userName: string, email: string }
orgEmail?: boolean
inReplyToMessageId?: string
scheduledTime?: string
subject?: string
content?: string
mailFormat?: 'text' | 'html'
attachmentIds?: string[]
templateId?: string
})
We welcome contributions to zoho-library
. Please feel free to contribute by opening issues or submitting pull requests.
zoho-library
is MIT licensed.