Hello 👋🏼 How can we help?

Update customer

Update data of an existing customer by their id
Written by Konstantine
Updated 1 month ago

You can update any existing data attribute of a customer with these methods.

If you want to update a number of customers at once, use Butch update customers method instead. To create a new customer, use Create customer method.

➡️ Request

URL https://api.helpcrunch.com/v1/customers/<customer_id>
Methods PUT / PATCH
Headers Authorization: Bearer <your_api_key>
PUT - replaces values for a set of fields in the request body. Fields that are not mentioned in the body would be set as null.
PATCH -  updates values for a set of fields in the request body only.

<customer_id> is the identifier for the customer as given by HelpCrunch. It is required for this method and looks like a combination of numbers, for example 1568834.

Read more about authorization header here.

When updating a customer you can specify all the existing data fields or a part of them in the body of your request. You can find all the available data fields in the Successful Response section below.

Request Body Example

{
    "notes": "He has never heard about magic",
    "source": null,
    "city": "London",
    "locale": "en",
    "regionCode": "London",
    "countryCode": "EN",
    "customData": [
        {
            "property": "Subscription Status",
            "value": "Suspended"
        },
        {
            "property": "Number of payments",
            "value": 13
        }
    ]
}


Tips

  • All dates should be passed in the UNIX timestamp format;
  • Locale filed should be passed as a string according to the ISO 639-1 standard;
  • Tag can be appended to the customer with Tag customer method or removed with Untag customer method. Tag will be automatically created and added to your account if you pass a non-existing one. You can assign any CSS color to the tag. If you don't specify it, the default #c377e0 color will be applied.
  • If you don't specify some fields in your request body, they will stay the same and will not be updated.
  • In order to clear the value of a specific field, you should pass a null value for it in your request body.
To create the new customData attribute, go to Settings → Contacts → Custom attributes and click 'Add new attribute'.


✅ Successful Response

If your request has succeeded, you'll get a 200 OK success status code together with the following response body. 

{
    "id": 7831827,
    "name": "Hakim Zarakim",
    "email": "hzarakim@example.com",
    "userId": "example_22",
    "company": "example",
    "phone": null,
    "firstSeen": 1593547200,
    "lastSeen": 1593547200,
    "location": {
        "regionCode": "London",
        "countryCode": "EN",
        "city": "London"
    },
    "device": null,
    "unsubscribed": false,
    "blocked": false,
    "source": null,
    "referer": null,
    "locale": "en",
    "notes": "He has never heard about magic",
    "lastPage": null,
    "tags": [
        {
            "name": "Lead",
            "color": "#cсс"
        },
        {
            "name": "Paid",
            "color": "#c377e0"
        }
    ],
    "customData": {
            "subscription_status": "Suspended",
            "number_of_payments": 13
        }
}

You can get details on every Customer Object field in the Customer model article.

🛑 Error Responses

You may get one of the following error status codes and responses. More info on the errors is available here.

400 Bad Request

{
    "errors": [
        {
            "code": "validation_error",
            "message": "email value is invalid"
        },
        {
            "code": "validation_error",
            "message": "userId value is invalid"
        },
        {
            "code": "validation_error",
            "message": "source value is invalid"
        }
    ]
}

401 Unauthorized

{
    "errors": [
        {
            "code": "invalid_token",
            "message": "Invalid token"
        }
    ]
}

404 Not Found

{
    "errors": [
        {
            "code": "entity_not_found",
            "message": "Customer not found"
        }
    ]
}

429 Too Many Requests

{
    "errors": [
        {
            "code": "too_many_requests",
            "message": "You have exceeded your requests limit"
        }
    ]
}

If you have any questions regarding the REST API, feel free to chat us any time.

👩‍💻 Happy Coding! 👨‍💻

Did this answer your question?