Zoho CRM Assignment rules

Assignment rule apis. Published by Zoho in its first-party OpenAPI 3.1.0 repository github.com/zoho/crm-oas; 2 operation(s).

OpenAPI Specification

zoho-crm-assignment-rules-openapi.json Raw ↑
{
  "openapi": "3.1.0",
  "info": {
    "title": "Assignment rules",
    "description": "Assignment rule apis",
    "version": "8"
  },
  "servers": [
    {
      "url": "https://zohoapis.{dc}/crm/{version}",
      "description": "API Server URL",
      "variables": {
        "dc": {
          "description": "API Server URL TLD",
          "default": "com",
          "enum": [
            "eu",
            "com",
            "au",
            "in",
            "jp",
            "cn",
            "ca"
          ]
        },
        "version": {
          "description": "API Version",
          "default": "v8"
        }
      }
    }
  ],
  "security": [
    {
      "iam-oauth2-schema": [
        "ZohoCRM.settings.assignment_rules.ALL"
      ]
    }
  ],
  "paths": {
    "/settings/automation/assignment_rules": {
      "get": {
        "summary": "GET /settings/automation/assignment_rules",
        "description": "To get all assignment rules",
        "operationId": "getAssignmentRules",
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.assignment_rules.READ"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ParamQueryModuleSchema"
          },
          {
            "$ref": "#/components/parameters/ParamQueryIncludeInnerDetails"
          }
        ],
        "responses": {
          "200": {
            "description": "When assignment rules are successfully fetched",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllAssignmentRulesSuccessResponse"
                }
              }
            }
          },
          "204": {
            "description": "No assignment rules available"
          },
          "400": {
            "description": "Invalid request error cases",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get All AR Possible 400 Error Response Schema",
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponseInvalidModule"
                    },
                    {
                      "$ref": "#/components/schemas/ErrorResponseFeatureNotSupported"
                    },
                    {
                      "$ref": "#/components/schemas/ErrorResponseModuleNotSupported"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Permission denied cases",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseNoPermissionToAccessAPI"
                }
              }
            }
          }
        }
      }
    },
    "/settings/automation/assignment_rules/{id}": {
      "get": {
        "summary": "GET /settings/automation/assignment_rules/1234567890",
        "description": "To get details of given assignment rule",
        "operationId": "getAssignmentRuleById",
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.assignment_rules.READ"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/RequestPathParamId"
          },
          {
            "$ref": "#/components/parameters/ParamQueryIncludeInnerDetails"
          },
          {
            "$ref": "#/components/parameters/ParamQueryModuleRequiredSchema"
          }
        ],
        "responses": {
          "200": {
            "description": "When assignment rule is successfully fetched",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSpecificAssignmentRuleSuccessResponse"
                }
              }
            }
          },
          "204": {
            "description": "No assignment rule available"
          },
          "400": {
            "description": "Invalid request error cases",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Error response for invalid module",
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponseInvalidModule"
                    },
                    {
                      "$ref": "#/components/schemas/ErrorResponseFeatureNotSupported"
                    },
                    {
                      "$ref": "#/components/schemas/ErrorResponseModuleNotSupported"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden request error cases",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Possible403ErrorResponsesInManagingAR"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "examples": {
      "ExampleErrorResponseNoPermissionToAccessAPI": {
        "summary": "Error response for no permission to access api",
        "value": {
          "code": "NO_PERMISSION",
          "details": {
            "permissions": [
              "Crm_Implied_Api_Access"
            ]
          },
          "message": "permission denied",
          "status": "error"
        }
      },
      "ExampleErrorResponseInvalidModule": {
        "summary": "Error response for invalid module",
        "value": {
          "code": "INVALID_MODULE",
          "details": {
            "param_name": "module"
          },
          "message": "the module name given seems to be invalid",
          "status": "error"
        }
      },
      "ExampleErrorResponseFeatureNotSupported": {
        "summary": "Error response for feature not supported",
        "value": {
          "code": "FEATURE_NOT_SUPPORTED",
          "details": {},
          "message": "Assignment rules not supported for current edition",
          "status": "error"
        }
      },
      "ExampleErrorResponseModuleNotSupported": {
        "summary": "Error response with code NOT_SUPPORTED: Given module is valid but not supported in assignment rules",
        "value": {
          "code": "NOT_SUPPORTED",
          "details": {
            "param_name": "module"
          },
          "message": "Module not supported in assignment rules",
          "status": "error"
        }
      }
    },
    "schemas": {
      "ZiaSuggestedUsersTypeAssignToObject": {
        "type": "object",
        "additionalProperties": false,
        "description": "If assign to type is zia suggested user",
        "properties": {
          "type": {
            "type": "string",
            "description": "Defines the type or users to associate as owner during execution",
            "enum": [
              "zia_suggested_users"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "UsersTypeAssignToResponseObject": {
        "type": "object",
        "additionalProperties": false,
        "description": "Defines the criteria and list of users eligible for record assignment upon entering the current rule entry.",
        "properties": {
          "type": {
            "type": "string",
            "description": "If assign to type is users",
            "enum": [
              "users"
            ]
          },
          "resources": {
            "type": "array",
            "description": "Defines the list of users details",
            "items": {
              "$ref": "#/components/schemas/ResourceResponseObject"
            },
            "maxItems": 50,
            "minItems": 1
          }
        },
        "required": [
          "type",
          "resources"
        ],
        "title": "Users type assign to response object"
      },
      "RoleGroupProfileTypeAssignToResponseObject": {
        "type": "object",
        "additionalProperties": false,
        "description": "Defines the criteria and list of users eligible for record assignment upon entering the current rule entry.",
        "properties": {
          "type": {
            "type": "string",
            "description": "Defines which set of users should be considered for assignment.  (Required)",
            "enum": [
              "role",
              "group",
              "profile"
            ]
          },
          "resource": {
            "$ref": "#/components/schemas/ResourceResponseObject",
            "description": "Defines the details user category such as role, group, profile"
          }
        },
        "required": [
          "type",
          "resource"
        ],
        "title": "Role, group or profile type assign to response object"
      },
      "CriteriaTypeAssignToResponseObject": {
        "type": "object",
        "additionalProperties": false,
        "description": "Defines the criteria and list of users eligible for record assignment upon entering the current rule entry.",
        "properties": {
          "type": {
            "type": "string",
            "description": "Defines which set of users should be considered for assignment.  (Required)",
            "enum": [
              "criteria"
            ],
            "maxLength": 255
          },
          "criteria": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true,
            "description": "Defines the criteria of the users who will be considered for owner assignment for records entering the current rule entry"
          }
        },
        "required": [
          "type",
          "criteria"
        ]
      },
      "AssignToResponseObject": {
        "description": "Assign to response object schema",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ZiaSuggestedUsersTypeAssignToObject"
          },
          {
            "$ref": "#/components/schemas/UsersTypeAssignToResponseObject"
          },
          {
            "$ref": "#/components/schemas/RoleGroupProfileTypeAssignToResponseObject"
          },
          {
            "$ref": "#/components/schemas/CriteriaTypeAssignToResponseObject"
          }
        ],
        "title": "Assign to response object"
      },
      "DefaultAssigneeResponseObject": {
        "type": "object",
        "additionalProperties": false,
        "description": "Details of the fallback user for record assignment in cases where the owner cannot be assigned through rule entries.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Display name of the default assignee. Will be deprecated",
            "maxLength": 255
          },
          "id": {
            "description": "Id of the default assignee. Will be deprecated",
            "oneOf": [
              {
                "$ref": "#/components/schemas/IdSchema"
              },
              {
                "type": "string",
                "description": "To define \"logged in user\" as fall back user for the given assignment rule, set ${CURRENTUSER} as value for this field.",
                "enum": [
                  "${CURRENTUSER}"
                ]
              }
            ]
          },
          "type": {
            "type": "string",
            "description": "Defines the type of the default assignee",
            "enum": [
              "user"
            ]
          },
          "resource": {
            "oneOf": [
              {
                "x-zs-$id": "DefaultAssigneeResourceDetails",
                "description": "Defines the details of the default assignee",
                "$ref": "#/components/schemas/ResourceResponseObject"
              },
              {
                "additionalProperties": false,
                "description": "Defines the details of the default assignee",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Logged in user reference display name",
                    "maxLength": 255
                  },
                  "api_name": {
                    "type": "string",
                    "description": "To define \"logged in user\" as fall back user for the given assignment rule, set ${CURRENTUSER} as value for this field.",
                    "enum": [
                      "${CURRENTUSER}"
                    ]
                  }
                }
              }
            ]
          }
        },
        "title": "Default Assignee Details"
      },
      "FollowupActionsResponseObject": {
        "type": "object",
        "additionalProperties": false,
        "description": "List of actions to be executed following the assignment of ownership to a record.",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the action (Required)",
            "enum": [
              "tasks"
            ]
          },
          "resources": {
            "type": "array",
            "description": "List of action details of the given type",
            "items": {
              "$ref": "#/components/schemas/ResourceResponseObject"
            },
            "maxItems": 1,
            "minItems": 1
          }
        },
        "required": [
          "type"
        ],
        "title": "Followup actions response object"
      },
      "ErrorResponseInvalidModule": {
        "type": "object",
        "additionalProperties": false,
        "description": "Error response when module given is invalid",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code",
            "enum": [
              "INVALID_MODULE"
            ]
          },
          "details": {
            "type": "object",
            "additionalProperties": false,
            "description": "Error details with validation information",
            "properties": {
              "param_name": {
                "type": "string",
                "description": "Detail field: param_name",
                "enum": [
                  "module"
                ]
              }
            },
            "required": [
              "param_name"
            ]
          },
          "message": {
            "type": "string",
            "description": "Error message",
            "enum": [
              "the module name given seems to be invalid"
            ]
          },
          "status": {
            "type": "string",
            "description": "Error status",
            "enum": [
              "error"
            ]
          }
        },
        "required": [
          "code",
          "details",
          "message",
          "status"
        ],
        "title": "Invalid Module Error Response"
      },
      "IdSchema": {
        "type": "string",
        "description": "ID of the resource",
        "pattern": "^[1-9][0-9]{0,18}$",
        "minLength": 1,
        "maxLength": 19
      },
      "ErrorResponseModuleNotSupported": {
        "type": "object",
        "additionalProperties": false,
        "description": "Error response for a module that is valid but unsupported in assignment rule processes.",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code",
            "enum": [
              "NOT_SUPPORTED"
            ]
          },
          "details": {
            "type": "object",
            "additionalProperties": false,
            "description": "Error details with validation information",
            "properties": {
              "param_name": {
                "type": "string",
                "description": "Detail field: param_name",
                "enum": [
                  "module"
                ]
              }
            },
            "required": [
              "param_name"
            ]
          },
          "message": {
            "type": "string",
            "description": "Error message",
            "enum": [
              "Module not supported in assignment rules"
            ]
          },
          "status": {
            "type": "string",
            "description": "Error status",
            "enum": [
              "error"
            ]
          }
        },
        "required": [
          "code",
          "details",
          "message",
          "status"
        ],
        "title": "Module Not Supported Error Response"
      },
      "ResourceResponseObject": {
        "type": "object",
        "additionalProperties": true,
        "description": "Resource details",
        "properties": {
          "name": {
            "type": "string",
            "description": "Display name of the resource",
            "maxLength": 255
          },
          "id": {
            "description": "Id of the resource",
            "$ref": "#/components/schemas/IdSchema"
          },
          "_details": {
            "$ref": "#/components/schemas/DetailsSchema"
          },
          "api_name": {
            "type": "string",
            "description": "API name of the resource",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "Resource Response Object"
      },
      "DetailsSchema": {
        "type": [
          "null",
          "object"
        ],
        "additionalProperties": true,
        "description": "_Details Schema",
        "title": "_Details Schema"
      },
      "Possible403ErrorResponsesInManagingAR": {
        "type": "object",
        "description": "Error response for forbidden access",
        "additionalProperties": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/ErrorResponseNoPermissionToAccessAPI"
          },
          {
            "$ref": "#/components/schemas/ErrorResponseNoPermissionToManageAR"
          },
          {
            "$ref": "#/components/schemas/ErrorResponseNoPermissionToManageAROfPrivateModule"
          }
        ],
        "title": "Possible 403 Error Cases In Managing AR"
      },
      "ErrorResponseFeatureNotSupported": {
        "type": "object",
        "additionalProperties": false,
        "description": "Feature not supported",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code",
            "enum": [
              "FEATURE_NOT_SUPPORTED"
            ]
          },
          "details": {
            "type": "object",
            "additionalProperties": false,
            "description": "Error details",
            "properties": {}
          },
          "message": {
            "type": "string",
            "description": "Error message",
            "enum": [
              "Assignment rules not supported for current edition"
            ]
          },
          "status": {
            "type": "string",
            "description": "Error status",
            "enum": [
              "error"
            ]
          }
        },
        "required": [
          "code",
          "details",
          "message",
          "status"
        ],
        "title": "Error response - Feature not supported"
      },
      "ErrorResponseNoPermissionToManageAR": {
        "type": "object",
        "additionalProperties": false,
        "description": "If current user does not have permission to manage assignment rules of given module",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code",
            "enum": [
              "NO_PERMISSION"
            ]
          },
          "details": {
            "type": "object",
            "additionalProperties": false,
            "description": "Error details with permission name",
            "properties": {
              "permissions": {
                "type": "array",
                "description": "List of required permissions",
                "items": {
                  "type": "string",
                  "description": "Manage AR Permission name of given module",
                  "maxLength": 255
                },
                "maxItems": 1,
                "minItems": 1
              }
            }
          },
          "message": {
            "type": "string",
            "description": "Error message",
            "maxLength": 255
          },
          "status": {
            "type": "string",
            "description": "Error status",
            "enum": [
              "error"
            ]
          }
        },
        "required": [
          "code",
          "details",
          "message",
          "status"
        ],
        "title": "No Permission To Manage AR Error Response"
      },
      "ErrorResponseNoPermissionToAccessAPI": {
        "type": "object",
        "additionalProperties": false,
        "description": "If current user does not have permission to access api",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code",
            "enum": [
              "NO_PERMISSION"
            ]
          },
          "details": {
            "type": "object",
            "additionalProperties": false,
            "description": "Error details with permission name",
            "properties": {
              "permissions": {
                "type": "array",
                "description": "List of required permissions",
                "items": {
                  "type": "string",
                  "description": "API access permission name",
                  "enum": [
                    "Crm_Implied_Api_Access"
                  ]
                },
                "maxItems": 1,
                "minItems": 1
              }
            }
          },
          "message": {
            "type": "string",
            "description": "Error message",
            "enum": [
              "permission denied"
            ]
          },
          "status": {
            "type": "string",
            "description": "Error status",
            "enum": [
              "error"
            ]
          }
        },
        "required": [
          "code",
          "details",
          "message",
          "status"
        ],
        "title": "No Permission To Update API Name Error Response"
      },
      "ErrorResponseNoPermissionToManageAROfPrivateModule": {
        "type": "object",
        "additionalProperties": false,
        "description": "If current user is neither the org admin nor the admin of the given private module",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code",
            "enum": [
              "NO_PERMISSION"
            ]
          },
          "details": {
            "type": "object",
            "additionalProperties": false,
            "description": "Error details with validation information",
            "properties": {}
          },
          "message": {
            "type": "string",
            "description": "Error message",
            "enum": [
              "User is neither the org admin nor the admin of the given private module"
            ]
          },
          "status": {
            "type": "string",
            "description": "Error status",
            "enum": [
              "error"
            ]
          }
        },
        "required": [
          "code",
          "details",
          "message",
          "status"
        ],
        "title": "No Permission To Manage AR Of Private Module Error Response"
      },
      "GetAllAssignmentRulesSuccessResponse": {
        "type": "object",
        "additionalProperties": false,
        "description": "Get all assignment rules success response",
        "properties": {
          "assignment_rules": {
            "type": "array",
            "description": "List of all assignment rules",
            "items": {
              "$ref": "#/components/schemas/AssignmentRuleResponseObject"
            },
            "minItems": 1,
            "maxItems": 200
          }
        }
      },
      "GetSpecificAssignmentRuleSuccessResponse": {
        "type": "object",
        "description": "Get all assignment rules success response",
        "additionalProperties": false,
        "properties": {
          "assignment_rules": {
            "type": "array",
            "description": "List of all assignment rules",
            "items": {
              "$ref": "#/components/schemas/AssignmentRuleResponseObjectWithRuleEntries"
            },
            "minItems": 1,
            "maxItems": 1
          }
        }
      },
      "AssignmentRuleResponseObject": {
        "type": "object",
        "additionalProperties": false,
        "description": "Details of the assignment rule",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IdSchema"
          },
          "name": {
            "type": "string",
            "description": "Name to be displayed for the assignment rule (Required) (Unique)",
            "maxLength": 100,
            "minLength": 1
          },
          "api_name": {
            "type": "string",
            "description": "API name of the rule (Unique)",
            "maxLength": 100,
            "minLength": 1
          },
          "module": {
            "$ref": "#/components/schemas/ResourceResponseObject"
          },
          "description": {
            "type": "string",
            "description": "Explains of the purpose of the assignment rule",
            "maxLength": 250
          },
          "created_by": {
            "$ref": "#/components/schemas/ResourceResponseObject"
          },
          "created_time": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of assignment rule creation",
            "maxLength": 255
          },
          "modified_by": {
            "$ref": "#/components/schemas/ResourceResponseObject"
          },
          "modified_time": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of assignment rule recent modification",
            "maxLength": 255
          },
          "default_assignee": {
            "$ref": "#/components/schemas/DefaultAssigneeResponseObject",
            "description": "Defines the details of the fall back user to whom the records will be assigned when owner couldn't be assigned by any of the rule entries defined. (Required)"
          }
        },
        "required": [
          "id",
          "name",
          "api_name",
          "description",
          "created_by",
          "created_time",
          "modified_by",
          "modified_time",
          "default_assignee"
        ],
        "title": "Assignment Rule Response Object"
      },
      "AssignmentRuleResponseObjectWithRuleEntries": {
        "type": "object",
        "additionalProperties": false,
        "description": "Details of the assignment rule",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IdSchema"
          },
          "name": {
            "type": "string",
            "description": "Name to be displayed for the assignment rule (Required) (Unique)",
            "maxLength": 100,
            "minLength": 1
          },
          "api_name": {
            "type": "string",
            "description": "API name of the rule (Unique)",
            "maxLength": 100,
            "minLength": 1
          },
          "module": {
            "$ref": "#/components/schemas/ResourceResponseObject"
          },
          "description": {
            "type": "string",
            "description": "Explains of the purpose of the assignment rule",
            "maxLength": 250
          },
          "created_by": {
            "$ref": "#/components/schemas/ResourceResponseObject"
          },
          "created_time": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of assignment rule creation",
            "maxLength": 255
          },
          "modified_by": {
            "$ref": "#/components/schemas/ResourceResponseObject"
          },
          "modified_time": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of assignment rule recent modification",
            "maxLength": 255
          },
          "default_assignee": {
            "$ref": "#/components/schemas/DefaultAssigneeResponseObject",
            "description": "Defines the details of the fall back user to whom the records will be assigned when owner couldn't be assigned by any of the rule entries defined. (Required)"
          },
          "rule_entries": {
            "type": "array",
            "description": "Defines the list of rules entries with record matching logic and assignment logic",
            "items": {
              "$ref": "#/components/schemas/RuleEntryResponseObject"
            },
            "maxItems": 200
          }
        },
        "required": [
          "id",
          "name",
          "api_name",
          "description",
          "created_by",
          "created_time",
          "modified_by",
          "modified_time",
          "default_assignee",
          "rule_entries"
        ],
        "title": "Assignment Rule Response Object"
      },
      "RuleEntryResponseObject": {
        "type": "object",
        "additionalProperties": false,
        "description": "Defines entries with matching and assignment logic for record processing.",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IdSchema"
          },
          "sequence_number": {
            "type": "integer",
            "format": "int32",
            "description": "Field: sequence_number"
          },
          "criteria": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true,
            "description": "Defines the record criteria based on which records will be filtered and assignment logic defined for current rule entry will be applied. If criteria is not provided or is null, all records entering current rule entry will be assigned based on current rule entry's assignment logic."
          },
          "assign_to": {
            "$ref": "#/components/schemas/AssignToResponseObject"
          },
          "user_availability_based_on": {
            "type": [
              "array",
              "null"
            ],
            "description": "Defines additional availability checks to be performed before choosing a user as owner. A user will be assigned as owner only if it satisfies the mentioned availability conditions.",
            "items": {
              "type": "string",
              "description": "Defines the type of user availability check, such as online status or shift timing.",
              "enum": [
                "online_status",
                "shift_timing"
              ]
            },
            "maxItems": 2
          },
          "followup_actions": {
            "type": [
              "array",
              "null"
            ],
            "description": "Defines the list of different actions to be executed after owner assignment",
            "items": {
              "$ref": "#/components/schemas/FollowupActionsResponseObject"
            },
            "maxItems": 1,
            "minItems": 1
          }
        },
        "required": [
          "id",
          "sequence_number",
          "criteria",
          "assign_to",
          "user_availability_based_on",
          "followup_actions"
        ],
        "title": "Rule Entry Object"
      }
    },
    "parameters": {
      "RequestPathParamId": {
        "name": "id",
        "in": "path",
        "required": true,
        "description": "Unique numeric identifier of assignment rule(long datatype)",
        "schema": {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,18}$",
          "minLength": 1,
          "maxLength": 19
        }
      },
      "ParamQueryIncludeInnerDetails": {
        "name": "include_inner_details",
        "in": "query",
        "description": "To include the fields or keys of the another resource",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "created_by.zuid",
            "modified_by.zuid"
          ]
        }
  

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-crm/refs/heads/main/openapi/zoho-crm-assignment-rules-openapi.json