Add Territories

Purpose

To add  new territories to your organization.

Request Details

Request URL

{api-domain}/crm/{version}/settings/territories

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Scope

scope=ZohoCRM.settings.territories.{operation_type}

Possible operation types

ALL - Full access to territories
CREATE - To create territories

Sample Request

Copiedcurl "https://www.zohoapis.com/crm/v7/settings/territories"
-X POST
-d "@addterritories.json"
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"

In the request, "@addterritories.json" contains the sample input data.

Input JSON

  • name string, mandatory

    Represents the name of the territory.

  • reporting_to JSON Object, mandatory

    Represents the ID of the parent territory. This can be obtained from GET Territories API

  • manager JSON Object, optional

    Represents the manager details of the territory.You can give ID of the manager of the territory.Use the Get Users API to get the ID of the user you want to set as manager of the territory.

  • permission_type string, mandatory

    Represents the type of permission for the territory. Valid values are read_only and read_write_delete.

  • description string, optional

    Represents the description of the territory.

  • account_rule_criteria JSON Object, optional

    Represents the criteria for Account module territory rules.

    • comparator string, optional

      Represents the comparison operator for the account rule criteria (e.g., greater_than, less_than).

    • fieldJSON Object, optional

      Represents the field details for the account rule criteria.

      • api_name string, optional

        Represents the API name of the field for the account rule criteria.

      • id string, optional

        Represents the unique ID of the field for the account rule criteria.This can be obtained from Field Metadata API.

    • value string, optional

      Represents the value to compare with for the account rule criteria.

  • lead_rule_criteria JSON Object, optional

    Represents the criteria for lead rules in the territory.

    • comparator string, optional

      Represents the comparison operator for the lead rule criteria (e.g., greater_than, less_than).

    • field JSON Object, optional

      Represents the field details for the lead rule criteria.

      • api_name string, optional

        Represents the API name of the field for the lead rule criteria.

      • id string, optional

        Represents the unique ID of the field for the lead rule criteria. This can be obtained from Field Metadata API

    • value string, optional

      Represents the value to compare with for the lead rule criteria.

  • deal_rule_criteria JSON Object, optional

    Represents the criteria for deal rules in the territory.

    • comparator string, optional

      Represents the comparison operator for the deal rule criteria (e.g., greater_than, less_than).

    • field JSON Object, optional

      Represents the field details for the deal rule criteria.

      • api_name string, optional

        Represents the API name of the field for the deal rule criteria.

      • id string, optional

        Represents the unique ID of the field for the deal rule criteria.This can be obtained from Field Metadata API

    • value string, optional

      Represents the value to compare with for the deal rule criteria.

Note

The following section describe field types and their allowed comparators

  • Text, Picklist, Lookup

    equal, not_equal, contains, not_contains, starts_with, ends_with

  • Date literals supported and their comparators
    • Date literal TODAY TOMORROW TOMORROWPLUS(Starting tomorrow) YESTERDAY AGEINDAYS AGEINDAYS EMPTY Comparator equal
    • Date literal YESTERDAYMINUS(Till yesterday) Comparator less_equal
    • Date literal NOTEMPTY Comparator not_equal
    • Date literal LASTMONTH THISMONTH NEXTMONTH LASTWEEK THISWEEK LASTYEAR THISYEAR NEXTYEAR PREVFQ (FQ - Financial Quarter) THISFQ NEXTFQ PREVFY (FY - Financial Year)THISFY NEXTFY Comparator between
  • Maximum number of rules supported in each criteria are 25
  • Maximum number of territories that can be created in your organization depends upon the version of CRM
  • Maximum number of territories that can be added in one API call is 10

Sample Input

Copied{
  "territories": [
    {
      "name": "Territory1000",
      "reporting_to": {
        "id": "431581000000272796"
      },
      "manager": {
        "id": "431581000000258001"
      },
      "permission_type": "read_only",
      "description": null,
      "account_rule_criteria": {
        "comparator": "greater_than",
        "field": {
          "api_name": "Annual_Revenue",
          "id": "431581000000000625"
        },
        "value": "1001"
      },
      "lead_rule_criteria": {
        "comparator": "greater_than",
        "field": {
          "api_name": "Annual_Revenue",
          "id": "431581000000000893"
        },
        "value": "1000"
      },
      "deal_rule_criteria": {
        "comparator": "greater_than",
        "field": {
          "api_name": "Amount",
          "id": "431581000000000799"
        },
        "value": "100000"
      }
    },
    {
      "name": "Territory1001",
      "reporting_to": {
        "id": "431581000000272796"
      },
      "manager": {
        "id": "431581000000258001"
      },
      "permission_type": "read_only",
      "account_rule_criteria": {
        "comparator": "greater_than",
        "field": {
          "api_name": "Annual_Revenue",
          "id": "431581000000000625"
        },
        "value": "10001"
      },
      "lead_rule_criteria": {
        "comparator": "greater_than",
        "field": {
          "api_name": "Annual_Revenue",
          "id": "431581000000000893"
        },
        "value": "10000"
      },
      "deal_rule_criteria": {
        "comparator": "greater_than",
        "field": {
          "api_name": "Amount",
          "id": "431581000000000799"
        },
        "value": "1000000"
      }
    }
  ]
}

Possible Errors

  • DUPLICATE_DATA HTTP 400
    • The territory name given in the request body already exists
    • There are duplicate territory names with in the request body.

    Resolution: Specify a unique value for territory name for different territories in the body.

  • MANDATORY_NOT_FOUND HTTP 400

    The keys name, reporting_to and permission_type are mandatory parameters.
    Resolution: Give a valid json request including all mandatory parameters.

  • INVALID_DATA HTTP 400
    • The parent territory ID is invalid
    • The permission_type is invalid
    • The reporting_to ID is invalid
    • The manager ID is invalid
    • The territory name is invalid. The special characters ^ ~ ` # % & + = [ ] { } | \ ; " ' < > , are not allowed.
    • The given Criteria is not a valid JSON


    Resolution: Refer to the "details" key in the response for the API name of the field that has the error in the input.

  • TERRITORY_NOT_ENABLEDHTTP 403

    Territory feature is not enabled
    Resolution: Try to enable territory feature.

  • TERRITORY_DISABLEDHTTP 403

    Territory feature is not enabled
    Resolution: Try to enable territory feature.

  • LIMIT_EXCEEDEDHTTP 400
    • Maximum Territory limit reached
    • Maximum Users Limit reached for a territory
    • Maximum Territory Criteria Limit reached


    Resolution:Refer to the "details" key in the response for the API name of the field that has the error in the input.

     

Sample Response

Copied{
    "territories": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "431581000000734292"
            },
            "message": "Territory Created Successfully",
            "status": "success"
        },
        {
            "code": "SUCCESS",
            "details": {
                "id": "431581000000734310"
            },
            "message": "Territory Created Successfully",
            "status": "success"
        }
    ]
}