Map Dependency
Purpose
To map dependency fields on a layout of the module in Zoho CRM.
Note
- A parent can have multiple child fields, but a child can have only one parent.
- Map dependency is layout-specific.
Request Details
Request URL
{api-domain}/crm/{version}/settings/layouts/{layout_ID}/map_dependency
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Scope
ZohoCRM.settings.map_dependency.CREATE
or
ZohoCRM.settings.map_dependency.ALL
Parameters
- modulestring, mandatory
The API name of the module you want to map the dependency fields in. Supported modules are Leads, Accounts, Contacts, Deals, Campaigns, Tasks, Cases, Meetings, Calls, Solutions, Products, Vendors, Price Books, Quotes, Sales Orders, Purchase Orders, Invoices, Services, Appointments, and Custom modules. Retrieve the module API names using the GET - Modules Metadata API.
Sample Request
Copiedcurl "https://www.zohoapis.com/crm/v4/settings/layouts/3652397000000091055/map_dependency?module=Leads"
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
-d "@input.json"
-X POST
In the example, "Lead_Status" is the parent field, and "Lead_Source" is the child field. Based on the value of Lead Status, the values of Lead Source will be populated per the mapping you give in the input.
Input JSON
In the example, "Lead_Status" is the parent field, and "Lead_Source" is the child field. Based on the value of Lead Status, the values of Lead Source will be populated per the mapping you give in the input.
- parentJSON object, mandatory
The API name and ID of the field you want to map as the parent in that module. The values in the dependent fields will change based on the value of this field. Use the Layouts Metadata API to get the API name and ID of the picklist fields in the module.
- childJSON object, mandatory
The API name and ID of the field that you want to map with the parent field. The values in this picklist will change based on the value in the parent field. Use the Layouts Metadata API to get the API name and ID of the picklist fields in the module.
- pick_list_valuesJSON array, mandatory
Each JSON object in this array corresponds to a specific picklist value in the parent field, and consists of the following keys:
- display_value - string, optional - The display name of the picklist value of the parent field.
- actual_value - string, optional - The actual name of the picklist value of the parent field.
- id - string, mandatory - The unique ID of the picklist value of the parent field.
- maps - JSON array, mandatory - The display_value, actual_value, and id of the picklist value of the child field that should be mapped with the parent field.
Sample Input
Copied{
"map_dependency": [
{
"parent": {
"api_name": "Lead_Status",
"id": "3652397000000002611"
},
"pick_list_values": [
{
"display_value": "-None-",
"maps": [
{
"display_value": "Cold Call",
"actual_value": "Cold Call",
"id": "3652397000000003389"
},
{
"display_value": "-None-",
"actual_value": "-None-",
"id": "3652397000000003391"
}
],
"actual_value": "-None-",
"id": "3652397000000003409"
},
{
"display_value": "Attempted to Contact",
"maps": [
{
"display_value": "Employee Referral",
"actual_value": "Employee Referral",
"id": "3652397000000003369"
},
{
"display_value": "Online Store",
"actual_value": "OnlineStore",
"id": "3652397000000003375"
}
],
"actual_value": "Attempted to Contact",
"id": "3652397000000003405"
},
{
"display_value": "Contact in Future",
"maps": [
{
"display_value": "Facebook",
"actual_value": "Facebook",
"id": "3652397000000209013"
},
{
"display_value": "Twitter",
"actual_value": "Twitter",
"id": "3652397000000209017"
},
{
"display_value": "Google+",
"actual_value": "Google+",
"id": "3652397000000209021"
}
],
"actual_value": "Contact in Future",
"id": "3652397000000003401"
},
{
"display_value": "Contacted",
"maps": [
{
"display_value": "Employee Referral",
"actual_value": "Employee Referral",
"id": "3652397000000003369"
},
{
"display_value": "External Referral",
"actual_value": "External Referral",
"id": "3652397000000003379"
},
{
"display_value": "ABC",
"actual_value": "ABC",
"id": "3652397000002244010"
}
],
"actual_value": "Contacted",
"id": "3652397000000003399"
}
],
"child": {
"api_name": "Lead_Source",
"id": "3652397000000002609"
}
}
]
}
Possible Errors
- REQUIRED_PARAM_MISSINGHTTP 400
You have not specified the module parameter in the request URL.
Resolution: The module name is mandatory to map the dependency fields from that module. - INVALID_MODULEHTTP 400
The module name is invalid or the module is not supported in API.
Resolution: You must use the correct API name of the module. - INVALID_DATAHTTP 400
Reasons:
- The layout's ID is invalid.
- The layout is deactivated.
- The parent and the child are the same fields.
- Either the ID of the parent, child or the picklist values is invalid.
- Either the API name of the child, parent, or the picklist values is invalid.
- You are trying to map dependency for more than one picklist/parent field, i.e., the root key "map_dependency" has more than one JSON object.
Resolution: Refer to the "details" key in the response for the exact error and rectify it accordingly. Note that you can map the dependent fields for only one parent picklist field per API call.
- MAPPING_EXISTSHTTP 400
The given parent and child fields are already associated in another map dependency created in this layout.
Resolution: Create map dependency for other fields. - NOT_ALLOWEDHTTP 400
Reasons:
- The parent and child mapping creates a loop, i.e., the parent field's value is given as a dependent value in the child field.
- Either the parent or the child field is in the unused section of the layout.
- The sandbox is not refreshed.
- Either the parent or the child is associated in a layout rule.
Resolution: Refer to the "details" key in the response for the exact error and rectify it accordingly.
- MANDATORY_NOT_FOUNDHTTP 400
You have not specified either the maps key or the picklist_values key in the input.
Resolution: Refer to the "details" key in the response to know what is missing and include it in the input. - AMBIGUITY_DURING_PROCESSINGHTTP 400
The API name and ID do not belong to the same parent or child.
Resolution: Specify the correct API name and ID of the parent and child fields. Refer to the Fields Metadata API for details. - INVALID_URL_PATTERNHTTP 404
Please check if the URL trying to access is a correct one
Resolution: The request URL specified is incorrect. Specify a valid request URL. Refer to request URL section above. - OAUTH_SCOPE_MISMATCHHTTP 401
Unauthorized
Resolution: You do not have ZohoCRM.settings.map_dependency.CREATE scope. Create new tokens with valid scope. Refer to the scope section above.
Sample Response
Copied{
"map_dependency": [
{
"code": "SUCCESS",
"details": {
"id": "3652397000009835011"
},
"message": "map dependency created",
"status": "success"
}
]
}