Create Email Schedule

Create an email schedule in the specified workspace.

REQUEST URI

https://<ZohoAnalytics_Server_URI>/restapi/v2/workspaces/<workspace-id>/emailschedules

Post

oauthscopeZohoAnalytics.modeling.create

QUERY PARAMETERS

 

Parameter Name
Description
CONFIG*JSONObject

Config parameter specifications are available in the below section.

FIELDS FOR CONFIG JSON

KeyDescription
scheduleName*String

Name of the schedule.
viewIds*JSONArray

View ids which has to be shared.
exportType*

String

The type of export.

Allowed Values: csv, xls, img, pdf, html

scheduleDetails*JSONObject

Detailed information about the schedule, such as time, frequency, etc.
Structure of scheduleDetails attribute
calendarFrequency*String

Defines the frequency of calendar events. Allowed values are daily, weekly, monthly and yearly.
hour*Integer

Specifies the hour of the day (0-23) when the email schedule should be triggered.
minute*Integer

Specifies the minute within the hour (at five-minute intervals only, ranging from 0 to 59) at which the email schedule will be triggered. Allowed values include 0, 5, 10, 15, ..., 50, and 55.
weekDayInteger

Specifies a particular day of the week when the email schedule should be triggered. Allowed values are 1 to 7, where 1 represents Sunday and 7 represents Saturday.
weekDaysJSONArray

Specifies the days of the week when the email schedule should be triggered. Allowed values are 1 to 7, where 1 represents Sunday and 7 represents Saturday.
weekNumberInteger

Specifies the week of the month when the email schedule should be triggered. Allowed values are 1 to 5.
monthDayInteger

Specifies a particular day of the month when the email schedule should be triggered. Allowed values are 1 to 31 and 99 to specify the last day of the month. The value is a single integer.
monthDaysJSONArray

Specifies the days of the month when the email schedule should be triggered. Allowed values are 1 to 31 and 99 to specify the last day of the month.
monthsJSONArray

Specifies the months of the year when the email schedule should be triggered. Allowed values are 1 to 12.
emailIdsJSONArray

The email address of the users to whom the views need to be shared.
groupIdsJSONArray

IDs of the groups available in the workspace. These IDs ensure that the views are shared with all participants belonging to the specified groups.
cc

JSONArray

Contains both individual email addresses and group IDs for carbon copy recipients.

Sample: {"emailIds":["emailId1","emailId2"], "groupIds":["groupId1","groupId2"]}

applyShareCriteria

Boolean

Whether to apply share criteria.

Default value - false.

applyDefaultUf

Boolean

Whether to apply default user filter.

Default value - false.

subjectString

Subject of the email.
messageString

Message content of the email.

POSSIBLE ERROR CODES

710473017387, 8000, 8119, 8083, 8518, 8535

Sample Request:

Copiedcurl https://analyticsapi.zoho.com/restapi/v2/workspaces/<workspace-id>/emailschedules --data-urlencode 'CONFIG={"scheduleName":"Schedule1","viewIds":["5888000000394502","5888000000394502"],"emailIds":["user+1@zoho.com"],"scheduleDetails":{"calendarFrequency":"daily","hour":"08","minute":"30"},"exportType":"pdf","subject":"Daily Sales Report","message":"Check the sales data report"}' 
-X 'POST' 
-H 'ZANALYTICS-ORGID: <org-id>' 
-H 'Authorization: Zoho-oauthtoken <access_token>'
Copiedusing System;
using System.Collections.Generic;
using ZohoAnalytics;
using System.Text.Json;

namespace ZohoAnalyticsTest
{
    class Program
    {
        long orgId = 55522777;
        long workspaceId = 35130000001055707;

        public void CreateEmailSchedule(IAnalyticsClient ac)
        {
            string scheduleName = "Schedule1";
            string format = "CSV";

            List<long> viewIds = new List<long>();
            viewIds.Add(1148746000002578004);
            viewIds.Add(1148746000002578002);

            List<string> emailIds = new List<string>();
            emailIds.Add("user_1@zoho.com");

            Dictionary<string, object> scheduleDetails = new Dictionary<string, object>();
            scheduleDetails.Add("calendarFrequency", "Daily");
            scheduleDetails.Add("hour", 10);
            scheduleDetails.Add("minute", 30);
            //{"calendarFrequency":"Daily","hour":10, "minute":30}

            Dictionary<string, object> config = new Dictionary<string, object>();
            config.Add("subject", "Daily Sales Report");

            IWorkspaceAPI ws = ac.GetWorkspaceInstance(orgId, workspaceId);
            long scheduleId = ws.CreateEmailSchedule(scheduleName, viewIds, format, emailIds, scheduleDetails, config);
            Console.WriteLine(scheduleId);
        }

        static void Main(string[] args)
        {
            string clientId = "1000.xxxxxxx";
            string clientSecret = "xxxxxxx";
            string refreshToken = "1000.xxxxxxx.xxxxxxx";

            try
            {
                IAnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
                Program obj = new Program();
                obj.CreateEmailSchedule(ac);
            }
            catch (ServerException ex)
            {
                Console.WriteLine("Server exception - " + ex.GetErrorMessage());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Other exception - " + ex.Message);
            }
        }
    }
}
Copiedpackage main

import (
    "fmt"
    ZAnalytics "zoho/pkg/analyticsclient"
)

var(
    clientId = "1000.xxxxxxx"
    clientSecret = "xxxxxxx"
    refreshToken = "1000.xxxxxxx.xxxxxxx"

    orgId = "55522777"
    workspaceId = "35130000001055707"
)

func CreateEmailSchedule(ac ZAnalytics.Client) {
    
    schedulename := "Schedule1"
    format := "CSV"
    viewids := []int64{1148746000002578004, 1148746000002578002}
    emailids := []string{"user_1@zoho.com"}

    scheduledetails := map[string]interface{}{
        "calendarFrequency": "Daily",
        "hour":              10,
        "minute":            30,
    }

    config := map[string]interface{}{
        "subject": "Daily Sales Report",
    }

    workspace := ZAnalytics.GetWorkspaceInstance(&ac, orgId, workspaceId)

    result, exception := workspace.CreateEmailSchedules(schedulename, viewids, format, emailids, scheduledetails, config)
    if(exception != nil){
        fmt.Println(exception.ErrorMessage)
    }else{
        fmt.Println(result)
    }
}

func main() {

    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    CreateEmailSchedule(ac)

}
Copiedimport com.zoho.analytics.client.*;
import org.json.*;

public class Test {

    private long orgId = 55522777l;
    private long workspaceId = 35130000001055707l;

    public static void main(String args[]){

        String clientId = "1000.xxxxxxx";
        String clientSecret = "xxxxxxx";
        String refreshToken = "1000.xxxxxxx.xxxxxxx";

        Test tObj = new Test();
        AnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);

        try {
            tObj.createEmailSchedule(ac);
        }
        catch (ServerException ex) {
            System.out.println("Server exception - ErrorCode : " + ex.getErrorCode() + ", ErrorMessage : "  + ex.getErrorMessage());
        }
        catch (ParseException ex) {
            System.out.println("Parser exception - ErrorMessage : "  + ex.getResponseMessage());
        }
        catch (Exception ex) {
            System.out.println("Other exception - ");
            ex.printStackTrace();
        }
    }

    public void createEmailSchedule(AnalyticsClient ac) throws Exception {


        String scheduleName = "Schedule1";
        String format = "CSV";

        JSONArray viewIds = new JSONArray();
        viewIds.put(1148746000002449002l);

        JSONArray emailIds = new JSONArray();
        emailIds.put("user+1@zoho.com");
        emailIds.put("user+2@zoho.com");
        
        JSONObject scheduleDetails = new JSONObject();
        scheduleDetails.put("calendarFrequency", "Daily");
        scheduleDetails.put("hour", 10);
        scheduleDetails.put("minute", 30);

        JSONObject config = new JSONObject();
        config.put("subject", "Daily Sales Report");


        WorkspaceAPI workspace = ac.getWorkspaceInstance(orgId, workspaceId);
        long result = workspace.createEmailSchedule(scheduleName, viewIds, format, emailIds, scheduleDetails, config);
        System.out.println(result);
    }
}
Copied<?php

    require 'AnalyticsClient.php';

    class Test
    {
        public $ac = NULL;
        public $client_id = "1000.xxxxxxx";
        public $client_secret = "xxxxxxx";
        public $refresh_token = "1000.xxxxxxx.xxxxxxx";

        public $org_id = "55522777";
        public $workspace_id = "35130000001055707";

        function __construct() {
            $this->ac =  new AnalyticsClient($this->client_id, $this->client_secret, $this->refresh_token);
        }

        function createEmailSchedule() {
            $schedule_name = "Schedule1";
            $format = "CSV";

            $view_ids = array(1148746000002578004, 1148746000002578002);
            $email_ids = array("user_1@zoho.com");

            $schedule_details = array(
                "calendarFrequency" => "Daily",
                "hour" => 10,
                "minute" => 30
            );

            $config = array(
                "subject" => "Daily Sales Report"
            );

            $workspace = $this->ac->getWorkspaceInstance($this->org_id, $this->workspace_id);
            $scheduleId = $workspace->createEmailSchedule($schedule_name, $view_ids, $format, $email_ids, $schedule_details, $config);
            echo $scheduleId;
        }
    }

    $test_obj = new Test();

    try {
        $test_obj->createEmailSchedule();
    }
    catch(ServerException $se) {
        echo "Server exception : " . $se->getErrorMessage() . "\n";
    }
    catch(IOException $ioe) {
        echo "IO exception : " . $ioe->getErrorMessage() . "\n";
    }
    catch(ParseException $pe) {
        echo "Parser exception : " . $pe->getErrorMessage() . "\n";
    }
    catch(Exception $e) {
        echo "Exception : " . $e->getErrorMessage() . "\n";
    }
?>
Copiedfrom __future__ import with_statement
from AnalyticsClient import AnalyticsClient
import sys
import json

class Config:

    CLIENTID = "1000.xxxxxxx";
    CLIENTSECRET = "xxxxxxx";
    REFRESHTOKEN = "1000.xxxxxxx.xxxxxxx";

    ORGID = "55522777";
    WORKSPACEID = "35130000001055707";

class sample:

    ac = AnalyticsClient(Config.CLIENTID, Config.CLIENTSECRET, Config.REFRESHTOKEN)

    def create_email_schedule(self, ac):
        schedule_name = "Schedule1"
        format = "CSV"

        view_ids = ["1148746000002578004", "1148746000002578002"]

        email_ids = ["user_1@zoho.com"]

        schedule_details = {
            "calendarFrequency": "Daily",
            "hour": 10,
            "minute": 30
        }

        config = {
            "subject": "Daily Sales Report"
        }

        workspace = ac.get_workspace_instance(Config.ORGID, Config.WORKSPACEID)
        schedule_id = workspace.create_email_schedule(schedule_name, view_ids, format, email_ids, schedule_details, config)
        print(schedule_id)

try:
    obj = sample()
    obj.create_email_schedule(obj.ac);

except Exception as e:
    print(str(e))
Copiedconst analyticsClient = require('./AnalyticsClient');

const clientId = '1000.xxxxxxx';
const clientSecret = 'xxxxxxx';
const refreshToken = '1000.xxxxxxx.xxxxxxx';
const orgId = '55522777';
const workspaceId = '35130000001055707';

const ac = new analyticsClient(clientId, clientSecret, refreshToken);
const workspace = ac.getWorkspaceInstance(orgId, workspaceId);

const scheduleName = 'Schedule1';
const format = 'CSV';
const viewIds = ['1148746000002578004', '1148746000002578002'];
const emailIds = ['user_1@zoho.com'];
const scheduleDetails = {
    calendarFrequency: 'Daily',
    hour: 10,
    minute: 30
};
const config = {
    subject: 'Daily Sales Report'
};

workspace.createEmailSchedule(scheduleName, viewIds, format, emailIds, scheduleDetails, config)
    .then((scheduleId) => {
        console.log(scheduleId);
    }).catch((error) => {
        console.log('errorCode: ' + error.errorCode);
        console.log('errorMessage: ' + error.errorMessage);
    });
CopiedorgId = "55522777";
workspaceId = "35130000001055707";

headersMap = Map();
headersMap.put("ZANALYTICS-ORGID",orgId);


config = Map();
config.put("scheduleName","Schedule1");

viewIds = {};
viewIds.add("35130000001360048");
viewIds.add("35130000001360050");
config.put("viewIds",viewIds);

config.put("exportType","CSV");

emailIds = {};
emailIds.add("user+1@zoho.com");
emailIds.add("user+2@zoho.com");
config.put("emailIds",emailIds);

scheduleDetails = Map();
scheduleDetails.put("calendarFrequency","daily");
scheduleDetails.put("hour","10");
scheduleDetails.put("minute","30");
config.put("scheduleDetails",scheduleDetails);

paramsMap = Map();
paramsMap.put("CONFIG",config.toString());

response = invokeurl
[
  url :"https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspaceId + "/emailschedules"
  type :POST
  parameters:paramsMap
  headers:headersMap
  connection:"analytics_oauth_connection"
];

info response;

Download SDKs:  C# | GO | JAVA | PHP | PYTHON | NodeJS

Sample value for CONFIG parameter:

Copied{
    "scheduleName": "Schedule1",
    "viewIds": [
        "5888000000394502",
        "5888000000394502"
    ],
    "emailIds": [
        "user+1@zoho.com"
    ],
    "scheduleDetails": {
        "calendarFrequency": "daily",
        "hour": "08",
        "minute": "30"
    },
    "exportType": "pdf",
    "subject": "Daily Sales Report",
    "message": "Check the sales data report"
}

Sample Response:

CopiedHTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8

{
    "status": "success",
    "summary": "Create Email Schedule",
    "data": {
        "scheduleId": "1767024000010886001"
    }
}