Copiedcurl "https://www.zohoapis.com/crm/bulk/v2/read"
-X POST
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
-H "Content-Type: application/json"
-d "@inputData.json"
CopiedString moduleAPIName = "Leads";
BulkReadOperations bulkReadOperations = new BulkReadOperations();
RequestWrapper requestWrapper = new RequestWrapper();
CallBack callback = new CallBack();
callback.setUrl("https://www.example.com/callback");
callback.setMethod(new Choice < String > ("post"));
requestWrapper.setCallback(callback);
Query query = new Query();
query.setModule(moduleAPIName);
List < String > fieldAPINames = new ArrayList < String > ();
fieldAPINames.add("Last_Name");
query.setFields(fieldAPINames);
query.setPage(1);
Criteria criteria = new Criteria();
criteria.setGroupOperator(new Choice < String > ("or"));
List < Criteria > criteriaList = new ArrayList < Criteria > ();
Criteria group11 = new Criteria();
group11.setGroupOperator(new Choice < String > ("and"));
List < Criteria > groupList11 = new ArrayList < Criteria > ();
Criteria group111 = new Criteria();
group111.setAPIName("All_day");
group111.setComparator(new Choice < String > ("equal"));
group111.setValue(false);
groupList11.add(group111);
Criteria group112 = new Criteria();
group112.setAPIName("Owner");
group112.setComparator(new Choice < String > ("in"));
List < String > owner = new ArrayList < String > (Arrays.asList("3477061000000173021"));
group112.setValue(owner);
groupList11.add(group112);
group11.setGroup(groupList11);
criteriaList.add(group11);
Criteria group12 = new Criteria();
group12.setGroupOperator(new Choice < String > ("or"));
List < Criteria > groupList12 = new ArrayList < Criteria > ();
Criteria group121 = new Criteria();
group121.setAPIName("Event_Title");
group121.setComparator(new Choice < String > ("equal"));
group121.setValue("New Automated Event");
groupList12.add(group121);
Criteria group122 = new Criteria();
group122.setAPIName("Created_Time");
group122.setComparator(new Choice < String > ("between"));
List < String > createdTime = new ArrayList < String > (Arrays.asList("2020-06-03T17:31:48+05:30", "2020-06-03T17:31:48+05:30"));
group122.setValue(createdTime);
groupList12.add(group122);
group12.setGroup(groupList12);
criteriaList.add(group12);
criteria.setGroup(criteriaList);
query.setCriteria(criteria);
requestWrapper.setQuery(query);
APIResponse < ActionHandler > response = bulkReadOperations.createBulkReadJob(requestWrapper);
Copiedimport javax.net.ssl.SSLContext;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;
public class CreateBulkReadjob
{
@SuppressWarnings("deprecation")
public static void main(String[] args)
{
try
{
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
SSLContext sslContext = SSLContext.getDefault();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpclient = httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory).build();
URIBuilder uriBuilder = new URIBuilder("https://www.zohoapis.com/crm/bulk/v2/read");
HttpUriRequest requestObj = new HttpPost(uriBuilder.build());
HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) requestObj;
JSONObject requestBody = new JSONObject();
JSONObject callback = new JSONObject();
callback.put("url", "https://www.example.com/callback");
callback.put("method", "post");
requestBody.put("callback", callback);
JSONObject query = new JSONObject();
query.put("module", "Contacts");
JSONArray fields = new JSONArray();
fields.put("Last_Name");
fields.put("Owner");
fields.put("Owner.last_name");
fields.put("Account_Name.Account_Name");
fields.put("Account_Name.Phone");
fields.put("Lead_Source");
fields.put("Created_Time");
query.put("fields", fields);
JSONObject criteria = new JSONObject();
criteria.put("group_operator", "or");
JSONArray group = new JSONArray();
JSONObject criteria1 = new JSONObject();
criteria1.put("api_name", "Lead_Source");
criteria1.put("comparator", "equal");
criteria1.put("value", "Advertisement");
group.put(criteria1);
JSONObject criteria2 = new JSONObject();
criteria2.put("api_name", "Owner.last_name");
criteria2.put("comparator", "equal");
criteria2.put("value", "Boyle");
group.put(criteria2);
JSONObject criteria3 = new JSONObject();
criteria3.put("api_name", "Account_Name.Phone");
criteria3.put("comparator", "contains");
criteria3.put("value", "5");
group.put(criteria3);
criteria.put("group", group);
query.put("criteria", criteria);
query.put("page", 1);
requestBody.put("query", query);
requestBase.setEntity(new StringEntity(requestBody.toString(), HTTP.UTF_8));
requestObj.addHeader("Authorization", "Zoho-oauthtoken 1000.xxxxxxx.xxxxxxx");
requestObj.addHeader(HttpHeaders.CONTENT_TYPE, "application/json");
HttpResponse response = httpclient.execute(requestObj);
HttpEntity responseEntity = response.getEntity()
System.out.println("HTTP Status Code : " + response.getStatusLine().getStatusCode());
if(responseEntity != null)
{
Object responseObject = EntityUtils.toString(responseEntity);
String responseString = responseObject.toString();
System.out.println(responseString);
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
Copied
$bulkReadOperations = new BulkReadOperations();
$requestWrapper = new RequestWrapper();
$callback = new CallBack();
$callback->setUrl("https://www.example.com/callback");
$callback->setMethod(new Choice("post"));
$requestWrapper->setCallback($callback);
$query = new Query();
$query->setModule($moduleAPIName);
$query->setCvid("347706187501");
$fieldAPINames = array();
array_push($fieldAPINames, "Last_Name");
$query->setFields($fieldAPINames);
$query->setPage(1);
$criteria = new Criteria();
$criteria->setAPIName("Created_Time");
$criteria->setComparator(new Choice("between"));
$createdTime = array("2020-06-03T17:31:48+05:30", "2020-06-03T17:31:48+05:30");
$criteria->setValue($createdTime);
$query->setCriteria($criteria);
$requestWrapper->setQuery($query);
$response = $bulkReadOperations->createBulkReadJob($requestWrapper);
Copied<?php
class CreateBulkReadjob
{
public function execute(){
$curl_pointer = curl_init();
$curl_options = array();
$curl_options[CURLOPT_URL] = "https://www.zohoapis.com/crm/bulk/v2/read";
$curl_options[CURLOPT_RETURNTRANSFER] = true;
$curl_options[CURLOPT_HEADER] = 1;
$curl_options[CURLOPT_CUSTOMREQUEST] = "POST";
$requestBody = array();
$callback = array();
$callback["url"]="https://www.example.com/callback";
$callback["method"]="post";
$query = array();
$query["module"]="Contacts";
$fields = array();
$fields[] = "Last_Name";
$fields[] = "Owner";
$fields[] = "Owner.last_name";
$fields[] = "Account_Name.Account_Name";
$fields[] = "Account_Name.Phone";
$fields[] = "Lead_Source";
$fields[] = "Created_Time";
$requestBody["callback"] =$callback;
$query["fields"]=$fields;
$criteria = array();
$criteria["group_operator"]="or";
$group = array();
$criteria1 = array();
$criteria1["api_name"]="Lead_Source";
$criteria1["comparator"]="equal";
$criteria1["value"]="Advertisement";
$criteria2 = array();
$criteria2["api_name"]="Owner.last_name";
$criteria2["comparator"]="equal";
$criteria2["value"]="Boyle";
$criteria3 = array();
$criteria3["api_name"]="Account_Name.Phone";
$criteria3["comparator"]="contains";
$criteria3["value"]="5";
$group = [$criteria1,$criteria2,$criteria3];
$criteria["group"] = $group;
$query["criteria"] =$criteria;
$query["page"] =1;
$requestBody["query"]=$query;
$curl_options[CURLOPT_POSTFIELDS]= json_encode($requestBody);
$headersArray = array();
$headersArray[] = "Authorization". ":" . "Zoho-oauthtoken " . "1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf";
$headersArray[] = "Content-Type".":"."application/json";
$curl_options[CURLOPT_HTTPHEADER]=$headersArray;
curl_setopt_array($curl_pointer, $curl_options);
$result = curl_exec($curl_pointer);
$responseInfo = curl_getinfo($curl_pointer);
curl_close($curl_pointer);
list ($headers, $content) = explode("\r\n\r\n", $result, 2);
if(strpos($headers," 100 Continue")!==false){
list( $headers, $content) = explode( "\r\n\r\n", $content , 2);
}
$headerArray = (explode("\r\n", $headers, 50));
$headerMap = array();
foreach ($headerArray as $key) {
if (strpos($key, ":") != false) {
$firstHalf = substr($key, 0, strpos($key, ":"));
$secondHalf = substr($key, strpos($key, ":") + 1);
$headerMap[$firstHalf] = trim($secondHalf);
}
}
$jsonResponse = json_decode($content, true);
if ($jsonResponse == null && $responseInfo['http_code'] != 204) {
list ($headers, $content) = explode("\r\n\r\n", $content, 2);
$jsonResponse = json_decode($content, true);
}
var_dump($headerMap);
var_dump($jsonResponse);
var_dump($responseInfo['http_code']);
}
}
(new CreateBulkReadjob())->execute();
Copied
BulkReadOperations bulkReadOperations = new BulkReadOperations();
RequestWrapper requestWrapper = new RequestWrapper();
CallBack callback = new CallBack();
callback.Url = "https://www.example.com/callback";
callback.Method = new Choice<string> ("post");
requestWrapper.Callback = callback;
API.BulkRead.Query query = new API.BulkRead.Query();
query.Module = moduleAPIName;
List<string> fieldAPINames = new List<string>();
fieldAPINames.Add("Last_Name");
query.Page = 1;
Criteria criteria = new Criteria();
criteria.GroupOperator = new Choice<string>("or");
List<Criteria> criteriaList = new List<Criteria>();
Criteria group11 = new Criteria();
group11.GroupOperator = new Choice<string>("and");
List<Criteria> groupList11 = new List<Criteria>();
Criteria group111 = new Criteria();
group111.APIName = "All_day";
group111.Comparator = new Choice<string>("equal");
group111.Value = false;
groupList11.Add(group111);
Criteria group112 = new Criteria();
group112.APIName = "Owner";
group112.Comparator = new Choice<string>("in");
List<string> owner = new List<string>() { "3477061000000173021" };
group112.Value = owner;
groupList11.Add(group112);
group11.Group = groupList11;
criteriaList.Add(group11);
Criteria group12 = new Criteria();
group12.GroupOperator = new Choice<string>("or");
List<Criteria> groupList12 = new List<Criteria>();
Criteria group121 = new Criteria();
group121.APIName = "Event_Title";
group121.Comparator = new Choice<string>("equal");
group121.Value = "New Automated Event";
groupList12.Add(group121);
Criteria group122 = new Criteria();
group122.APIName = "Created_Time";
group122.Comparator = new Choice<string>("between");
List<string> createdTime = new List<string>() { "2020-06-03T17:31:48+05:30", "2020-06-03T17:31:48+05:30" };
group122.Value = createdTime;
groupList12.Add(group122);
group12.Group = groupList12;
criteriaList.Add(group12);
criteria.Group = criteriaList;
query.Criteria = criteria;
requestWrapper.Query = query;
requestWrapper.FileType = new Choice<string>("csv");
APIResponse<ActionHandler> response = bulkReadOperations.CreateBulkReadJob(requestWrapper);
Copiedusing System;
using System.IO;
using System.Net;
using System.Text;
using Newtonsoft.Json.Linq;
namespace Com.Zoho.Crm.API.Sample.RestAPI.BulkRead
{
public class CreateBulkReadjob
{
public static void CreateBulkRead()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.zohoapis.com/crm/bulk/v2/read");
request.Method = "POST";
request.ContentType = "application/json";
request.Headers["Authorization"] = "Zoho-oauthtoken 1000.abfeXXXXXXXXXXX2asw.XXXXXXXXXXXXXXXXXXsdc2";
JObject requestBody = new JObject();
JObject callback = new JObject();
callback.Add("url", "https://www.example.com/callback");
callback.Add("method", "post");
requestBody.Add("callback", callback);
JObject query = new JObject();
query.Add("module", "Contacts");
JArray fields = new JArray();
fields.Add("Last_Name");
fields.Add("Owner");
fields.Add("Owner.last_name");
fields.Add("Account_Name.Account_Name");
fields.Add("Account_Name.Phone");
fields.Add("Lead_Source");
fields.Add("Created_Time");
query.Add("fields", fields);
JObject criteria = new JObject();
criteria.Add("group_operator", "or");
JArray group = new JArray();
JObject criteria1 = new JObject();
criteria1.Add("api_name", "Lead_Source");
criteria1.Add("comparator", "equal");
criteria1.Add("value", "Advertisement");
group.Add(criteria1);
JObject criteria2 = new JObject();
criteria2.Add("api_name", "Owner.last_name");
criteria2.Add("comparator", "equal");
criteria2.Add("value", "Boyle");
group.Add(criteria2);
JObject criteria3 = new JObject();
criteria3.Add("api_name", "Account_Name.Phone");
criteria3.Add("comparator", "contains");
criteria3.Add("value", "5");
group.Add(criteria3);
criteria.Add("group", group);
query.Add("criteria", criteria);
query.Add("page", 1);
requestBody.Add("query", query);
string dataString = requestBody.ToString();
var data = Encoding.UTF8.GetBytes(dataString);
int dataLength = data.Length;
request.ContentLength = dataLength;
using (var writer = request.GetRequestStream())
{
writer.Write(data, 0, dataLength);
}
request.KeepAlive = true;
HttpWebResponse response;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
if (e.Response == null) { throw; }
response = (HttpWebResponse)e.Response;
}
HttpWebResponse responseEntity = response;
Console.WriteLine("HTTP Status Code : " + (int)response.StatusCode);
string responsestring = new StreamReader(responseEntity.GetResponseStream()).ReadToEnd();
responseEntity.Close();
Console.WriteLine(responsestring);
}
}
}
Copied
bulk_read_operations = BulkReadOperations()
request = RequestWrapper()
call_back = CallBack()
call_back.set_url("https://www.example.com/callback")
call_back.set_method(Choice('post'))
request.set_callback(call_back)
query = Query()
query.set_module(module_api_name)
query.set_cvid('3409643000000087501')
field_api_names = ['Last_Name']
query.set_fields(field_api_names)
query.set_page(1)
criteria = Criteria()
criteria.set_api_name('Created_Time')
criteria.set_comparator(Choice('between'))
time = ["2020-06-03T17:31:48+05:30", "2020-06-03T17:31:48+05:30"]
criteria.set_value(time)
query.set_criteria(criteria)
request.set_query(query)
response = bulk_read_operations.create_bulk_read_job(request)
Copieddef create_bulk_read_job():
import requests
import json
url = 'https://www.zohoapis.com/crm/bulk/v2/read'
headers = {
'Authorization': 'Zoho-oauthtoken 1000.04be928e4a96XXXXXXXXXXXXX68.0b9eXXXXXXXXXXXX60396e268',
'Content-Type': 'application/json'
}
request_body = dict()
call_back = {
'url': 'https://www.example.com/callback',
'method': 'post'
}
query = {
'module': 'Contacts'
}
fields = [
'Last_Name',
'Owner',
'Account_Name.Account_Name',
'Account_Name.Phone',
'Lead_Source'
]
criteria = {
'group_operator': 'or'
}
criteria_1 = {
'api_name': 'Lead_Source',
'comparator': 'equal',
'value': 'Advertisement'
}
criteria_2 = {
'api_name': 'Owner.last_name',
'comparator': 'equal',
'value': 'Boyle'
}
group = [
criteria_1,
criteria_2
]
criteria['group'] = group
query['criteria'] = criteria
query['page'] = 1
query['fields'] = fields
request_body['query'] = query
request_body['callback'] = call_back
response = requests.post(url=url, headers=headers, data=json.dumps(request_body).encode('utf-8'))
if response is not None:
print("HTTP Status Code : " + str(response.status_code))
print(response.json())
create_bulk_read_job()
Copied//Get instance of BulkReadOperations Class
let bulkReadOperations = new BulkReadOperations();
//Get instance of RequestWrapper Class that will contain the request body
let requestWrapper = new RequestWrapper();
//Get instance of CallBack Class
let callBack = new CallBack();
//Set valid callback URL.
callBack.setUrl("https://www.example.com/callback");
//Set the HTTP method of the callback URL. The allowed value is post.
callBack.setMethod(new Choice("post"));
//The Bulk Read Job's details is posted to this URL on successful completion / failure of the job.
requestWrapper.setCallback(callBack);
//Get instance of Query Class
let query = new Query();
//Specifies the API Name of the module to be read.
query.setModule(moduleAPIName);
//Specifies the unique ID of the custom view, whose records you want to export.
query.setCvid("3409643000000087501");
//Array of field names
let fieldAPINames = [];
fieldAPINames.push("Last_Name");
//Specifies the API Name of the fields to be fetched.
query.setFields(fieldAPINames);
//To set page value, By default value is 1.
query.setPage(1);
//Get instance of Criteria Class
let criteria = new Criteria();
criteria.setGroupOperator(new Choice("or"));
let criteriaArray = [];
let group11 = new Criteria();
group11.setGroupOperator(new Choice("and"));
let groupArray11 = [];
let group111 = new Criteria();
group111.setAPIName("All_Day");
group111.setComparator(new Choice("equal"));
group111.setValue(false);
groupArray11.push(group111);
let group112 = new Criteria();
group112.setAPIName("Owner");
group112.setComparator(new Choice("in"));
group112.setValue(["34770610000001"]);
groupArray11.push(group112);
group11.setGroup(groupArray11);
criteriaArray.push(group11);
// let group112 = new Criteria();
let groupArray12 = [];
// To set API name of a field.
group112.setAPIName("Created_Time");
// To set comparator(eg: equal, greater_than.).
group112.setComparator(new Choice("between"));
let time = ["2020-06-03T17:31:48+05:30", "2020-06-03T17:31:48+05:30"];
// To set the value to be compared
group112.setValue(time);
groupArray12.push(group112);
criteria.setGroup(criteriaArray);
//To filter the records to be exported.
query.setCriteria(criteria);
//Set the query object
requestWrapper.setQuery(query);
//Specify the value for this key as "ics" to export all records in the Events module as an ICS file.
//requestWrapper.setFileType(new Choice("ics"));
//Call createBulkReadJob method that takes RequestWrapper instance as parameter
let response = await bulkReadOperations.createBulkReadJob(requestWrapper);
Copiedasync function createBulkReadJob() {
const got = require('got');
let url = 'https://www.zohoapis.com/crm/bulk/v2/read'
let headers = {
'Authorization': 'Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf',
'Content-Type': 'application/json'
}
let requestBody = {}
let callBack = {
'url': 'https://www.example.com/callback',
'method': 'post'
}
let query = {
'module': 'Contacts'
}
let fields = [
'Last_Name',
'Owner',
'Account_Name.Account_Name',
'Account_Name.Phone',
'Lead_Source'
]
let criteria = {
'group_operator': 'or'
}
let criteria1 = {
'api_name': 'Lead_Source',
'comparator': 'equal',
'value': 'Advertisement'
}
let criteria2 = {
'api_name': 'Owner.last_name',
'comparator': 'equal',
'value': 'Boyle'
}
let group = [criteria1, criteria2]
criteria['group'] = group
query['criteria'] = criteria
query['page'] = 1
query['fields'] = fields
requestBody['query'] = query
requestBody['callback'] = callBack
let requestDetails = {
method : "POST",
headers : headers,
body : JSON.stringify(requestBody),
encoding: "utf8",
throwHttpErrors : false
};
let response = await got(url, requestDetails)
if(response != null) {
console.log(response.statusCode);
console.log(response.body);
}
}
createBulkReadJob()
Copied
cvid = '3524033000000087501'
bro = BulkRead::BulkReadOperations.new
request_wrapper = BulkRead::RequestWrapper.new
call_back = BulkRead::CallBack.new
call_back.url = 'https://www.example.com/callback'
call_back.method = Util::Choice.new('post')
request_wrapper.callback = call_back
query = BulkRead::Query.new
query.module = module_api_name
query.cvid = cvid
field_api_names = ['Last_Name']
query.fields = field_api_names
query.page = 1
criteria = BulkRead::Criteria.new
criteria.api_name = 'Created_Time'
criteria.comparator = Util::Choice.new('between')
created_time = ['2020-06-03T17:31:48+05:30', '2020-06-03T17:31:48+05:30']
criteria.value = created_time
query.criteria = criteria
request_wrapper.query = query
response = bro.create_bulk_read_job(request_wrapper)
Copiedclass CreateBulkReadjob
def execute
url ="https://www.zohoapis.com/crm/bulk/v2/read";
url = URI(url)
req = Net::HTTP::Post.new(url.request_uri)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
headers={}
headers["Authorization"]="Zoho-oauthtoken 1000.50XXXXXXXXX&77e3a.44XXXXXXXXX8353"
headers["Content-Type"]="application/json";
headers&.each { |key, value| req.add_field(key, value) }
request_body = {};
callback = {}
callback["url"]="https://www.example.com/callback";
callback["method"]="post";
query = {}
query["module"]="Contacts";
fields = ["Last_Name","Owner","Owner.last_name","Account_Name.Account_Name"]
request_body["callback"] =callback;
query["fields"]=fields;
criteria = {}
criteria["group_operator"]="or";
group = {}
criteria1 = {}
criteria1["api_name"]="Lead_Source";
criteria1["comparator"]="equal";
criteria1["value"]="Advertisement";
criteria2 = {}
criteria2["api_name"]="Owner.last_name";
criteria2["comparator"]="equal";
criteria2["value"]="Boyle";
criteria3 = {}
criteria3["api_name"]="Account_Name.Phone";
criteria3["comparator"]="contains";
criteria3["value"]="5";
group = [criteria1,criteria2,criteria3];
criteria["group"] = group;
query["criteria"] =criteria;
query["page"] =1;
request_body["query"]=query;
request_json = request_body.to_json
req.body = request_json.to_s
response=http.request(req)
status_code = response.code.to_i
headers = response.each_header.to_h
print status_code
print headers
unless response.body.nil?
print response.body
end
end
end
CreateBulkReadjob.new.execute
Copied
let bulkReadOperations = new ZCRM.BulkRead.Operations();
let requestWrapper = new ZCRM.BulkRead.Model.RequestWrapper();
let callBack = new ZCRM.BulkRead.Model.CallBack();
callBack.setUrl("https://www.example.com/callback");
callBack.setMethod(new Choice("post"));
requestWrapper.setCallback(callBack);
let query = new ZCRM.BulkRead.Model.Query();
query.setModule(moduleAPIName);
let fieldAPINames = [];
fieldAPINames.push("Last_Name");
query.setFields(fieldAPINames);
query.setPage(1);
let criteria = new ZCRM.BulkRead.Model.Criteria();
criteria.setGroupOperator(new Choice("or"));
let criteriaArray = [];
let group11 = new ZCRM.BulkRead.Model.Criteria();
group11.setGroupOperator(new Choice("and"));
let groupArray11 = [];
let group111 = new ZCRM.BulkRead.Model.Criteria();
group111.setAPIName("Company");
group111.setComparator(new Choice("equal"));
group111.setValue("Zoho");
groupArray11.push(group111);
let group112 = new ZCRM.BulkRead.Model.Criteria();
group112.setAPIName("Owner");
group112.setComparator(new Choice("in"));
group112.setValue(["3477061173021"]);
groupArray11.push(group112);
group11.setGroup(groupArray11);
criteriaArray.push(group11);
let group12 = new ZCRM.BulkRead.Model.Criteria();
group12.setGroupOperator(new Choice("or"));
let groupArray12 = [];
let group121 = new ZCRM.BulkRead.Model.Criteria();
group121.setAPIName("Email");
group121.setComparator(new Choice("equal"));
group121.setValue("avc6@zoho.com");
groupArray12.push(group121);
let group122 = new ZCRM.BulkRead.Model.Criteria();
group122.setAPIName("Created_Time");
group122.setComparator(new Choice("between"));
let createdTime = [new Date("2020-07-13T12:12:12+05:30"), new Date("2021-07-13T12:12:12+05:30")];
group122.setValue(createdTime);
groupArray12.push(group122);
group12.setGroup(groupArray12);
criteriaArray.push(group12);
criteria.setGroup(criteriaArray);
query.setCriteria(criteria);
requestWrapper.setQuery(query);
let response = await bulkReadOperations.createBulkReadJob(requestWrapper);
Copiedvar listener = 0;
class CreateBulkReadjob {
async createBulkReadJob() {
var url = "https://www.zohoapis.com/crm/bulk/v2/read"
var parameters = new Map()
var headers = new Map()
var token = {
clientId:"1000.NPY9M1V0XXXXXXXXXXXXXXXXXXXF7H",
redirectUrl:"http://127.0.0.1:5500/redirect.html",
scope:"ZohoCRM.users.ALL,ZohoCRM.bulk.read,ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,Aaaserver.profile.Read,ZohoCRM.org.ALL,profile.userphoto.READ,ZohoFiles.files.ALL,ZohoCRM.bulk.ALL,ZohoCRM.settings.variable_groups.ALL"
}
var accesstoken = await new CreateBulkReadjob().getToken(token)
headers.set("Authorization", "Zoho-oauthtoken " + accesstoken)
headers.set('Content-Type', "application/json")
var requestMethod = "POST"
var reqBody = {
"callback": {
"url": "https://www.example.com/callback",
"method": "post"
},
"query": {
"module": "Contacts",
"fields": [
"Last_Name",
"Owner",
"Owner.last_name",
"Account_Name.Account_Name",
"Account_Name.Phone",
"Lead_Source",
"Created_Time"
],
"criteria": {
"group_operator": "or",
"group": [
{
"api_name": "Lead_Source",
"comparator": "equal",
"value": "Advertisement"
},
{
"api_name": "Owner.last_name",
"comparator": "equal",
"value": "Boyle"
},
{
"api_name": "Account_Name.Phone",
"comparator": "contains",
"value": "5"
}
]
},
"page": 1
}
}
var params = "";
parameters.forEach(function(value, key) {
if (parameters.has(key)) {
if (params) {
params = params + key + '=' + value + '&';
}
else {
params = key + '=' + value + '&';
}
}
});
var apiHeaders = {};
if(headers) {
headers.forEach(function(value, key) {
apiHeaders[key] = value;
});
}
if (params.length > 0){
url = url + '?' + params.substring(0, params.length - 1);
}
var requestObj = {
uri : url,
method : requestMethod,
headers : apiHeaders,
body : JSON.stringify(reqBody),
encoding: "utf8",
allowGetBody : true,
throwHttpErrors : false
};
var result = await new CreateBulkReadjob().makeAPICall(requestObj);
console.log(result.status)
console.log(result.response)
}
async getToken(token) {
if(listener == 0) {
window.addEventListener("storage", function(reponse) {
if(reponse.key === "access_token" && (reponse.oldValue != reponse.newValue || reponse.oldValue == null)){
location.reload();
}
if(reponse.key === "access_token"){
sessionStorage.removeItem("__auth_process");
}
}, false);
listener = 1;
if(sessionStorage.getItem("__auth_process")) {
sessionStorage.removeItem("__auth_process");
}
}
["granted_for_session", "access_token","expires_in","expires_in_sec","location","api_domain","state","__token_init","__auth_process"].forEach(function (k) {
var isKeyExists = localStorage.hasOwnProperty(k);
if(isKeyExists) {
sessionStorage.setItem(k, localStorage[k]);
}
localStorage.removeItem(k);
});
var valueInStore = sessionStorage.getItem("access_token");
var tokenInit = sessionStorage.getItem("__token_init");
if(tokenInit != null && valueInStore != null && Date.now() >= parseInt(tokenInit) + 59 * 60 * 1000){
valueInStore = null;
sessionStorage.removeItem("access_token");
}
var auth_process = sessionStorage.getItem("__auth_process");
if ((valueInStore == null && auth_process == null) || (valueInStore == 'undefined' && (auth_process == null || auth_process == "true"))) {
var accountsUrl = "https://accounts.zoho.com/oauth/v2/auth"
var clientId;
var scope;
var redirectUrl;
if(token != null) {
clientId = token.clientId;
scope = token.scope;
redirectUrl = token.redirectUrl;
}
var fullGrant = sessionStorage.getItem("full_grant");
var grantedForSession = sessionStorage.getItem("granted_for_session");
if(sessionStorage.getItem("__token_init") != null && ((fullGrant != null && "true" == full_grant) || (grantedForSession != null && "true" == grantedForSession))) {
accountsUrl += '/refresh';
}
if (clientId && scope) {
sessionStorage.setItem("__token_init", Date.now());
sessionStorage.removeItem("access_token");
sessionStorage.setItem("__auth_process", "true");
window.open(accountsUrl + "?" + "scope" + "=" + scope + "&"+ "client_id" +"=" + clientId + "&response_type=token&state=zohocrmclient&redirect_uri=" + redirectUrl);
["granted_for_session", "access_token","expires_in","expires_in_sec","location","api_domain","state","__token_init","__auth_process"].forEach(function (k) {
var isKeyExists = localStorage.hasOwnProperty(k);
if(isKeyExists){
sessionStorage.setItem(k, localStorage[k]);
}
localStorage.removeItem(k);
});
valueInStore = sessionStorage.getItem("access_token");
}
}
if(token != null && valueInStore != 'undefined'){
token.accessToken = valueInStore;
}
return token.accessToken;
}
async makeAPICall(requestDetails) {
return new Promise(function (resolve, reject) {
var body, xhr, i;
body = requestDetails.body || null;
xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.open(requestDetails.method, requestDetails.uri, true);
for (i in requestDetails.headers) {
xhr.setRequestHeader(i, requestDetails.headers[i]);
}
xhr.send(body);
xhr.onreadystatechange = function() {
if(xhr.readyState == 4) {
resolve(xhr);
}
}
})
}
}
Copied
let bulkReadOperations: BulkReadOperations = new BulkReadOperations();
let requestWrapper: RequestWrapper = new RequestWrapper();
let callBack: CallBack = new CallBack();
callBack.setUrl("https://www.example.com/callback");
callBack.setMethod(new Choice("post"));
requestWrapper.setCallback(callBack);
let query: Query = new Query();
query.setModule(moduleAPIName);
query.setCvid("3477061087501");
let fieldAPINames: string[] = [];
fieldAPINames.push("Last_Name");
query.setFields(fieldAPINames);
query.setPage(1);
let criteria: Criteria = new Criteria();
criteria.setGroupOperator(new Choice("or"));
let criteriaArray: Criteria[] = [];
let group11: Criteria = new Criteria();
group11.setGroupOperator(new Choice("and"));
let groupArray11: Criteria[] = [];
let group111: Criteria = new Criteria();
group111.setAPIName("Company");
group111.setComparator(new Choice("equal"));
group111.setValue("Zoho");
groupArray11.push(group111);
let group112: Criteria = new Criteria();
group112.setAPIName("Owner");
group112.setComparator(new Choice("in"));
group112.setValue(["3477061173021"]);
groupArray11.push(group112);
group11.setGroup(groupArray11);
criteriaArray.push(group11);
let group12 = new Criteria();
group12.setGroupOperator(new Choice("or"));
let groupArray12: Criteria[] = [];
let group121 = new Criteria();
group121.setAPIName("Paid");
group121.setComparator(new Choice("equal"));
group121.setValue(true);
groupArray12.push(group121);
let group122 = new Criteria();
group122.setAPIName("Created_Time");
group122.setComparator(new Choice("between"));
let time = ["2020-06-03T17:31:48+05:30", "2020-06-03T17:31:48+05:30"];
group122.setValue(time);
groupArray12.push(group122);
group12.setGroup(groupArray12);
criteriaArray.push(group12);
criteria.setGroup(criteriaArray);
query.setCriteria(criteria);
requestWrapper.setQuery(query);
let response: APIResponse < ActionHandler > = await bulkReadOperations.createBulkReadJob(requestWrapper);
Copiedimport got from 'got';
class CreateBulkReadjob {
public async main() {
var apiHeaders: {[key: string]: string} = {};
var apiParameters: {[key: string]: string} = {};
var modifiedRequestBody: any={
"callback": {
"url": "https://www.example.com/callback",
"method": "post"
},
"query": {
"module": "Contacts",
"fields": [
"Last_Name",
"Owner",
"Owner.last_name",
"Account_Name.Account_Name",
"Account_Name.Phone",
"Lead_Source",
"Created_Time"
],
"criteria": {
"group_operator": "or",
"group": [
{
"api_name": "Lead_Source",
"comparator": "equal",
"value": "Advertisement"
},
{
"api_name": "Owner.last_name",
"comparator": "equal",
"value": "Boyle"
},
{
"api_name": "Account_Name.Phone",
"comparator": "contains",
"value": "5"
}
]
},
"page": 1
}
};
modifiedRequestBody = JSON.stringify(modifiedRequestBody)
apiHeaders["Content-Type"]= "application/json"
apiHeaders["Authorization"] = "Zoho-oauthtoken 1000.xxxxxxx.xxxxxx"
var requestDetails: {[key: string]: any} = {
method : "POST",
headers : apiHeaders,
searchParams : apiParameters,
body : modifiedRequestBody,
encoding: "utf8",
allowGetBody : true,
throwHttpErrors : false
};
var response = await got("https://www.zohoapis.com/crm/bulk/v2/read", requestDetails);
console.log(response.statusCode)
console.log(JSON.parse(response.body));
}
}
var v = new CreateBulkReadjob()
v.main()