Get Notification Details

Purpose

To get the details of the notifications enabled by the user.

Request Details

Request URL

{api-domain}crm/{version}/actions/watch
 

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Scope

scope=ZohoCRM.notifications.{operation_type}

Possible operation types

ALL - Full access to the record
READ - Get notification details

Parameters

  • pageInteger, optional

    To get the list of records from the respective pages. Default value is 1.
    Possible values: Integer values. Example: 1(or)4(or)6

  • per_pageInteger, optional

    To get the list of records available per page. Default value is 200.
    Possible values: Integer values. Example: 200(or)400

  • channel_idInteger, mandatory

    Specify the unique ID of the notification channel.
    Possible values: Channel ID. Example: 1000000068001

  • modulestring, optional

    Specify the API name of the module for which the notification is enabled.
    Possible values: Module API names. Example: Leads

Sample Request

Copiedcurl "https://www.zohoapis.com/crm/v2.1/actions/watch?page=1&per_page=200"
-X GET
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
3.0.08.0
Copied//Get instance of NotificationOperations Class
NotificationOperations notificationOperations = new NotificationOperations();

ParameterMap paramInstance = new ParameterMap();

paramInstance.add(GetNotificationDetailsParam.CHANNEL_ID, 100000006800212 l);

paramInstance.add(GetNotificationDetailsParam.MODULE, "Leads");

paramInstance.add(GetNotificationDetailsParam.PAGE, 1);

paramInstance.add(GetNotificationDetailsParam.PER_PAGE, 2);

//Call getNotificationDetails method
APIResponse < ResponseHandler > response = notificationOperations.getNotificationDetails(paramInstance);
Copiedpackage com.zoho.crm.api.sample.restapi.notifications;
import javax.net.ssl.SSLContext;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
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.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
public class GetNotificationDetails 
{
	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/v2.1/actions/watch");
			uriBuilder.addParameter("page", "1");
			uriBuilder.addParameter("per_page", "1");
			uriBuilder.addParameter("channel_id", "10068001");
			uriBuilder.addParameter("module", "Contacts");
			HttpUriRequest requestObj = new HttpGet(uriBuilder.build());
			requestObj.addHeader("Authorization", "Zoho-oauthtoken 1000.xxxxxxx.xxxxxxx");
			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();
		}
	}
}
4.0.04.x
Copied//Get instance of NotificationOperations Class
$notificationOperations = new NotificationOperations();
$paramInstance = new ParameterMap();
$paramInstance->add(GetNotificationDetailsParam::channelId(), "1006800211");
$paramInstance->add(GetNotificationDetailsParam::module(), "Accounts");
$paramInstance->add(GetNotificationDetailsParam::page(), 1);
$paramInstance->add(GetNotificationDetailsParam::perPage(), 2);
//Call getNotificationDetails method
$response = $notificationOperations->getNotificationDetails($paramInstance);
Copied<?php
class GetNotificationDetails{
    
    public function execute(){
        $curl_pointer = curl_init();
        
        $curl_options = array();
        $url = "https://www.zohoapis.com/crm/v2.1/actions/watch?";
        $parameters = array();
        $parameters["channel_id"]="1000000068001";

        foreach ($parameters as $key=>$value){
            $url =$url.$key."=".$value."&";
        }
        $curl_options[CURLOPT_URL] = $url;
        $curl_options[CURLOPT_RETURNTRANSFER] = true;
        $curl_options[CURLOPT_HEADER] = 1;
        $curl_options[CURLOPT_CUSTOMREQUEST] = "GET";
        $headersArray = array();
        
        $headersArray[] = "Authorization". ":" . "Zoho-oauthtoken " ."1000.30f3a589XXXXXXXXXXXXXXXXXXX4077.dc5XXXXXXXXXXXXXXXXXXXee9e7c171c";
        $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 GetNotificationDetails())->execute();
3.0.08.x
Copied//Get instance of NotificationOperations Class
NotificationOperations notificationOperations = new NotificationOperations();
ParameterMap paramInstance = new ParameterMap();
paramInstance.Add(GetNotificationDetailsParam.CHANNEL_ID, 100000006800212);
paramInstance.Add(GetNotificationDetailsParam.MODULE, "Leads");
paramInstance.Add(GetNotificationDetailsParam.PAGE, 1);
paramInstance.Add(GetNotificationDetailsParam.PER_PAGE, 2);
//Call getNotificationDetails method
APIResponse<ResponseHandler> response = notificationOperations.GetNotificationDetails(paramInstance);
Copiedusing System;
using System.IO;
using System.Net;
using System.Xml;
using Newtonsoft.Json;
namespace Com.Zoho.Crm.API.Sample.RestAPI.Notifications
{
    public class NotificationDetails
    {
        public static void GetNotificationDetails()
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.zohoapis.com/crm/v2.1/actions/watch?channel_id=100068001&module=Contacts");
            request.Method = "GET";
            request.Headers["Authorization"] = "Zoho-oauthtoken 1000.abfeXXXXXXXXXXX2asw.XXXXXXXXXXXXXXXXXXsdc2";
            string IfModifiedSince = JsonConvert.SerializeObject("2020-05-15T12:00:00+05:30");
            IfModifiedSince = IfModifiedSince.Replace("\\", "");
            IfModifiedSince = IfModifiedSince.Replace("\"", "");
            DateTime dateConversion = XmlConvert.ToDateTime(IfModifiedSince, XmlDateTimeSerializationMode.Utc);
            request.IfModifiedSince = dateConversion;
            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);
        }
    }
}
3.0.03.x.x
Copied# Get instance of NotificationOperations Class
notification_operations = NotificationOperations()
# Get instance of ParameterMap Class
param_instance = ParameterMap()
param_instance.add(GetNotificationDetailsParam.module, 'Deals')
param_instance.add(GetNotificationDetailsParam.page, 1)
param_instance.add(GetNotificationDetailsParam.per_page, 20)
param_instance.add(GetNotificationDetailsParam.channel_id, 100000006800211)
# Call get_notification_details method
response = notification_operations.get_notification_details(param_instance)
Copieddef get_notification_details():
    import requests

    url = 'https://www.zohoapis.com/crm/v2.1/actions/watch'

    headers = {
        'Authorization': 'Zoho-oauthtoken 1000.04be928e4a96XXXXXXXXXXXXX68.0b9eXXXXXXXXXXXX60396e268'
    }

    parameters = {
        'page': 1,
        'per_page': 20,
        'channel_id': '1000000068001',
        'module': 'Contacts'
    }

    response = requests.get(url=url, headers=headers, params=parameters)

    if response is not None:
        print("HTTP Status Code : " + str(response.status_code))

        print(response.json())

get_notification_details()
1.0.010.x
Copied//Get instance of NotificationOperations Class
let notificationOperations = new NotificationOperations();
//Get instance of ParameterMap Class
let paramInstance = new ParameterMap();
await paramInstance.add(GetNotificationDetailsParam.CHANNEL_ID, 100000006800211n);
await paramInstance.add(GetNotificationDetailsParam.MODULE, "Accounts");
await paramInstance.add(GetNotificationDetailsParam.PAGE, 1);
await paramInstance.add(GetNotificationDetailsParam.PER_PAGE, 200);
//Call getNotificationDetails method
let response = await notificationOperations.getNotificationDetails(paramInstance);
Copiedasync function getNotificationDetails() {
    const got = require("got");

    let url = 'https://www.zohoapis.com/crm/v2.1/actions/watch'

    let headers = {
        Authorization : "Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
    }

    let parameters = {
        'page': 1,
        'per_page': 20,
        'channel_id': '1000000068001',
        'module': 'Contacts'
    }

    let requestDetails = {
        method : "GET",
        headers : headers,
        searchParams : parameters,
        throwHttpErrors : false
    }
    
    let response = await got(url, requestDetails)
    
    if(response != null) {
        console.log(response.statusCode);
        console.log(response.body);
    }
}
getNotificationDetails()
2.1.0
Copied# Get instance of NotificationOperations Class
no = Notification::NotificationOperations.new
# Get instance of ParameterMap Class
pm = ParameterMap.new
pm.add(Notification::NotificationOperations::GetNotificationDetailsParam.channel_id, 10_000_000_680_211)
pm.add(Notification::NotificationOperations::GetNotificationDetailsParam.module_1, 'Deals')
# Call get_notification_details method
response = no.get_notification_details(pm)
Copiedrequire 'net/http'
require 'json'

class GetNotificationDetails 

    def execute
        parameters ={}
        parameters["channel_id"]="1000000068001"
        query_string = parameters.to_a.map { |x| "#{x[0]}=#{x[1]}" }.join('&')
        url = "https://www.zohoapis.com/crm/v2.1/actions/watch"
        url += '?' + query_string if !query_string.nil? && (query_string.strip != '')
        url = URI(url)
        req = Net::HTTP::Get.new(url.request_uri)
        http = Net::HTTP.new(url.host, url.port)
        http.use_ssl = true
        headers={}
        headers["Authorization"]="Zoho-oauthtoken 1000.dfa7XXXXXXXXXXXXXXXXXX84f9665840.c176aeXXXXXXXXXXXX13f3d37a84d"
        headers&.each { |key, value| req.add_field(key, value) }
        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
GetNotificationDetails.new.execute
Note
  • Use the page and per_page parameter to fetch records according to their position in the CRM. Let's assume that the user has to fetch 400 records. The maximum number of records that one can get for an API call is 200. So, for records above the 200th position, they cannot be fetched. By using the page (1, 2, 3 and 4) and per_page (100) parameter, the user can fetch all 400 records using 4 API calls.

Sample Response

Copied{
    "watch": [
       {
            "channel_expiry": "2018-02-02T11:30:00+05:30",
            "resource_uri": "https://www.zohoapis.com/crm/v2.1/Contacts",
            "resource_id": "1000000000045",
            "notify_url": "https://www.zoho.com/callback?authorization=Zoho-oauthtoken 1000.23dnsbbbh455jnn&key1=val1&key2=val2&key3=val3",
            "resource_name": "Contacts",
            "channel_id": "1000000068001",
            "events": [
                "Contacts.create"
            ],
            "token": "TOKEN_FOR_VERIFICATION_OF_1000000068001"
        },
       {
            "channel_expiry": "2018-02-02T11:30:00+05:30",
            "resource_uri": "https://www.zohoapis.com/crm/v2.1/Leads",
            "resource_id": "1000000000041",
            "notify_url": "https://www.zoho.com/callback?authorization=Zoho-oauthtoken 1000.23dnsbbbh455jnn&key1=val1&key2=val2&key3=val3",
            "resource_name": "Leads",
            "channel_id": "1000000068001",
            "events": [
                "Leads.edit",
                "Leads.create",
                "Leads.delete"
            ],
            "token": "TOKEN_FOR_VERIFICATION_OF_1000000068001"
        },
       {
            "channel_expiry": "2018-02-02T11:30:00+05:30",
            "resource_uri": "https://www.zohoapis.com/crm/v2.1/Deals",
            "resource_id": "1000000000047",
            "notify_url": "https://www.zoho.com/callback?authorization=Zoho-oauthtoken 1000.23dnsbbbh455jnn&key1=val1&key2=val2&key3=val3",
            "resource_name": "Deals",
            "channel_id": "1000000068001",
            "events": [
                "Deals.edit",
                "Deals.create",
                "Deals.delete"
            ],
            "token": "TOKEN_FOR_VERIFICATION_OF_1000000068001"
        },
       {
            "channel_expiry": "2018-02-02T11:30:00+05:30",
            "resource_uri": "https://www.zohoapis.com/crm/v2.1/Tasks",
            "resource_id": "1000000000063",
            "notify_url": "https://www.zoho.com/callback?authorization=Zoho-oauthtoken 1000.23dnsbbbh455jnn&key1=val1&key2=val2",
            "resource_name": "Tasks",
            "channel_id": "1000000068001",
            "events": [
                "Tasks.edit",
                "Tasks.create",
                "Tasks.delete"
            ],
            "token": "TOKEN_FOR_VERIFICATION_OF_1000000068001"
        },
       {
            "channel_expiry": "2018-02-02T10:30:00+05:30",
            "resource_uri": "https://www.zohoapis.com/crm/v2.1/Leads",
            "resource_id": "1000000000041",
            "notify_url": "https://www.zoho.com/callback?authorization=Zoho-oauthtoken 1000.23dnsbbbh455jnn&key1=val1&key2=val2&key3=val3",
            "resource_name": "Leads",
            "channel_id": "1000000058003",
            "events": [
                "Leads.edit",
                "Leads.create",
                "Leads.delete"
            ],
            "token": "TOKEN_FOR_VERIFICATION_OF_1000000058003"
        }
    ],
    "info": {
        "per_page": 200,
        "count": 5,
        "page": 1,
        "more_records": false
    }
}