Pipedrive API Documentation

Pipedrive's API Docs

Welcome to Pipedrive's Developer Documentation. Here you'll find comprehensive guides and documentation to help you start working with Pipedrive's API, as well as the Changelog to see any relevant changes regarding the public API.

Updating a Person

It's very easy to update the different properties of a Person. Here you can see the list of parameters that can be changed. In the example below, we're going to give a Person a new name and a new org_id by updating the name and organization of the Person.

If you want to see the finished code of this example, you can find it below.

You can also try out updating a Person by using the PUT /persons/{id} endpoint from our API Reference.

Step 1: Get your API token and company domain

Follow our tutorials on how to find the API token and how to get the company domain. Then create a file updatePerson.php and first give value to the $api_token and $company_domain variables:

<?php
// Content of updatePerson.php
   
// Pipedrive API token
$api_token = '659c9fddb16335e48cc67114694b52074e812e03';
   
// Pipedrive company domain
$company_domain = 'theunicorntail';

Step 2: Prepare the data

In order to change the name parameter, simply add the new name you wish to give to the Person.

To change the Person's organization, you'll need to know the org_id of the new organization. You can fetch the org_id of an Organization via GET /organizations.

You can also find the org_id manually within the Pipedrive web app. Head to Contacts > Organizations and click on the Organization you want, then the last digits shown in the URL will be the org_id. An example URL would look like this https://companydomain.pipedrive.com/organization/1, which, in this case, means the org_id would be 1. You can also find the Organization's ID by adding the ID column to the Organization List View.

Insert the values to the designated fields name and org_id:

// New name for the Person and new id of the organization they will belong to
$data = array(
    'name' => 'Jane Doe',
    'org_id'=> 1
);

Step 3: Define Person's ID

In order to update a Person, you'll need the person_id. You can fetch it via GET /persons.

You can also find the person_id manually within the Pipedrive web app by going to Contacts > People and clicking on the Person whose ID you're interested in. Once you're in the Person's detail page, check the last digit(s) of the URL, this is the Person's ID. An example URL would be like this https://companydomain.pipedrive.com/person/13 which, in this example case, means the person_id would be 13.

Insert a valid value to the $person_id variable:

// Person's ID
$person_id = 13;

Step 4: Define target URL

To make a request, you'll need the correct URL for updating the necessary Person. An example with the person_id being 13 would look like this https://companydomain.pipedrive.com/api/v1/persons/13?api_token=659c9fddb16335e48cc67114694b52074e812e03

You need to create a $url variable which holds the correct URL for updating the Person:

// URL for updating a Person
$url = 'https://' . $company_domain . '.pipedrive.com/api/v1/persons/' . $person_id . '?api_token=' . $api_token;

Step 5: Make a PUT request

This part of the code is more complex and you don’t need to understand it right away, all you need to know is that it contains everything to make a PUT request with your data against our API.

Why PUT?
Because we use PUT to update resources and POST to create one as it is common in RESTful APIs.
Read more about it here.

To make the PUT request, simply copy and paste this:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
   
echo 'Sending request...' . PHP_EOL;
   
$output = curl_exec($ch);
curl_close($ch);

Step 6: Check the result

$output variable holds the full response you get back from the server. As all responses from us are in JSON format, the first thing you'll want to do is to convert it into a proper PHP array:

// Create an array from the data that is sent back from the API
// As the original content from server is in JSON format, you need to convert it to a PHP array
$result = json_decode($output, true);

Then you can check if data returned in the result is not empty:

// Check if the data returned in the result is not empty
if (empty($result['data'])) {
    exit('Updating failed' . PHP_EOL);
}

And now you can check if a person_id came back:

// Check if Person ID came back, if it did then print out the new name and the new organization name.
if (!empty($result['data']['id'])) {
    echo 'Person\'s data was updated. The new name is ' . $result['data']['name'] . ' who now belongs to an organization called ' . $result['data']['org_id']['name'].'.' . PHP_EOL;
}

Full working example

Copy the full working example into updatePerson.php. Don't forget to replace variables with your actual data:

<?php
// Content of updatePerson.php
 
// Pipedrive API token
$api_token = '659c9fddb16335e48cc67114694b52074e812e03';
 
// Pipedrive company domain
$company_domain = 'theunicorntail';
 
// New name for the Person and new id of the organization they will belong to
$data = array(
    'name' => 'Jane Doe',
    'org_id'=> 1
);
 
// Person's ID
$person_id = 13;
 
// URL for updating a Person
$url = 'https://' . $company_domain . '.pipedrive.com/api/v1/persons/' . $person_id . '?api_token=' . $api_token;
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
 
echo 'Sending request...' . PHP_EOL;
 
$output = curl_exec($ch);
curl_close($ch);
 
// Create an array from the data that is sent back from the API
// As the original content from server is in JSON format, you need to convert it to a PHP array
$result = json_decode($output, true);
 
// Check if the data returned in the result is not empty
if (empty($result['data'])) {
    exit('Updating failed' . PHP_EOL);
}
 
// Check if Person ID came back, if it did then print out the new name and the new organization name.
if (!empty($result['data']['id'])) {
    echo 'Person\'s data was updated. The new name is ' . $result['data']['name'] . ' who now belongs to an organization called ' . $result['data']['org_id']['name'].'.' . PHP_EOL;
}

To execute the code

Use php updatePerson.php command to execute the code in the command line.

Here's an example output if the Person's data was updated:

Sending request...
Person's data was updated. The new name is Jane Doe who now belongs to an organization called Randomness.

If updating the Person failed, this is the output you'll get:

Sending request...
Updating failed

Updated 4 months ago

Updating a Person


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.