Update Contact Roles

Purpose

To update details of contact roles.

Request Details

Request URL

https://www.zohoapis.com/crm/v2/Contacts/roles

To update a specific contact role:
https://www.zohoapis.com/crm/v2/Contacts/roles/{contact_role_id}

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Scope

scope=ZohoCRM.modules.ALL
(or)
scope=ZohoCRM.modules.contacts.UPDATE

Possible operation types

ALL - Full access to the records
WRITE - Edit records in the contacts module
UPDATE - Update records in the contacts module

Sample Request

Copiedcurl "https://www.zohoapis.com/crm/v2/Contacts/roles"
-X PUT
-d "@updatecontactroles.json"
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
3.0.0
Copied//Get instance of ContactRolesOperations Class
ContactRolesOperations contactRolesOperations = new ContactRolesOperations();
//Get instance of BodyWrapper Class that will contain the request body
BodyWrapper bodyWrapper = new BodyWrapper();
//List of ContactRole instances
List<ContactRole> contactRolesList = new List<ContactRole>();
//Get instance of ContactRole Class
ContactRole cr1 = new ContactRole();
//Set ID to the ContactRole instance
cr1.Id = 3477061000007540001;
//Set name to the ContactRole instance
cr1.Name = "Edited122";
//Add ContactRole instance to the list
contactRolesList.Add(cr1);
//Get instance of ContactRole Class
ContactRole cr2 = new ContactRole();
//Set ID to the ContactRole instance
cr2.Id = 3477061000007540002;
//Set name to the ContactRole instance
//cr2.Name = "Edit";
//Add ContactRole instance to the list
contactRolesList.Add(cr2);
//Set the list to contactRoles in BodyWrapper instance
bodyWrapper.ContactRoles = contactRolesList;
//Call UpdateContactRoles method that takes BodyWrapper instance as parameter
APIResponse<ActionHandler> response = contactRolesOperations.UpdateContactRoles(bodyWrapper);
1.0.010.x
Copied//Get instance of ContactRolesOperations Class
let contactRolesOperations = new ContactRolesOperations();
//Get instance of BodyWrapper Class that will contain the request body
let request = new BodyWrapper();
//Array to hold ContactRole instances
let contactRolesArray = [];
//Get instance of ContactRole Class
let cr1 = new ContactRole();
//Set ID to the ContactRole instance
cr1.setId(3409643000001792004n);
//Set name to the ContactRole instance
cr1.setName("Edited1");
//Add ContactRole instance to the array
contactRolesArray.push(cr1);
//Get instance of ContactRole Class
cr1 = new ContactRole();
//Set ID to the ContactRole instance
cr1.setId(3409643000001794001n);
//Set name to the ContactRole instance
cr1.setName("Edited2");
//Add ContactRole instance to the array
contactRolesArray.push(cr1);
//Set the array to contactRoles in BodyWrapper instance
request.setContactRoles(contactRolesArray);
//Call updateContactRoles method that takes BodyWrapper instance as parameter
let response = await contactRolesOperations.updateContactRoles(request);
Copiedasync function updateContactRoles() {
    const got = require("got");

    let url = 'https://www.zohoapis.com/crm/v2/Contacts/roles'
    let headers = {
        Authorization : "Zoho-oauthtoken 1000.354dXXXXXXXXXXX2f3.aae0efXXXXXXXXc92bc9"
    }

    let requestBody = {}
    let recordArray = []

    let recordObject1 = {
        id : '3409643000001792004',
        sequence_number : 10
    }

    let recordObject2 = {
        name : 'CRole20-edited',
        id : '3409643000001794001'
    }

    recordArray.push(recordObject1)
    recordArray.push(recordObject2)

    requestBody['contact_roles'] = recordArray

    let requestDetails = {
        method : "PUT",
        headers : headers,
        body : JSON.stringify(requestBody),
        encoding: "utf8",
        throwHttpErrors : false
    };
    
    let response = await got(url, requestDetails)
    
    if(response != null) {
        console.log(response.statusCode);
        console.log(response.body);
    } 
}

updateContactRoles()

async function updateContactRole() {
    const got = require("got");

    let url = 'https://www.zohoapis.com/crm/v2/Contacts/roles/3409643000001792004'
    let headers = {
        Authorization : "Zoho-oauthtoken 1000.354dXXXXXXXXXXX84e6a9d1894732f3.aaeXXXXXXXXXXf6f4c92bc9"
    }

    let requestBody = {}
    let recordArray = []

    let recordObject1 = {
        sequence_number : 10
    }

    recordArray.push(recordObject1)

    requestBody['contact_roles'] = recordArray

    let requestDetails = {
        method : "PUT",
        headers : headers,
        body : JSON.stringify(requestBody),
        encoding: "utf8",
        throwHttpErrors : false
    };
    
    let response = await got(url, requestDetails)
    
    if(response != null) {
        console.log(response.statusCode);
        console.log(response.body);
    } 
}

updateContactRole()

Input JSON Keys

  • idstring, mandatory

    Specify the unique ID of the contact role. Refer to Get Contact Roles API to get valid IDs. You need not specify this key if you specify the ID in request URL.

  • namestring, optional

    Specify the unique name of the contact role.

  • sequence_numberinteger, optional

    Specify the position of the contact role in the picklist in CRM UI.

Sample Input

Copied{
    "contact_roles": [
        {
            "name": "Sales Lead",
            "sequence_number": 5,
             "id": "4150868000003611011"
        },
        {
            "name": "Quality Control",
            "sequence_number": 6,
            "id": "4150868000003611012"
        }
    ]
}

Possible Errors

  • 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: Client does not have ZohoCRM.modules.contacts.UPDATE scope. Create a new client with valid scope. Refer to scope section above.

  • NO_PERMISSIONHTTP 403

    Permission denied to update records
    Resolution: The user does not have permission to update records. Contact your system administrator.

  • INTERNAL_ERRORHTTP 500

    Internal Server Error
    Resolution: Unexpected and unhandled exception in Server. Contact support team.

  • INVALID_REQUEST_METHODHTTP 400

    The http request method type is not a valid one
    Resolution: You have specified an invalid HTTP method to access the API URL. Specify a valid request method. Refer to endpoints section above.

  • AUTHORIZATION_FAILEDHTTP 400

    User does not have sufficient privilege to update records
    Resolution: The user does not have the permission to update records. Contact your system administrator.

  • DUPLICATE_DATAHTTP 400

    duplicate data
    Resolution: You have specified a duplicate value for "name" field. Specify a unique contact role name in the request input.

  • INVALID_DATAHTTP 400

    invalid data
    Resolution: The input specified for "sequence_number" key is incorrect. Refer to Input JSON Keys section above and specify the valid input.

  • MANDATORY_NOT_FOUNDHTTP 400

    required field not found
    Resolution: Specify the unique ID of the contact role to be updated in your request input. Refer to Get Contact Roles API to get valid contact role IDs.

Sample Response

Copied{
    "contact_roles": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "4150868000003611011"
            },
            "message": "record updated",
            "status": "success"
        },
        {
            "code": "SUCCESS",
            "details": {
                "id": "4150868000003611012"
            },
            "message": "record updated",
            "status": "success"
        }
    ]
}