> ## Documentation Index
> Fetch the complete documentation index at: https://docs.explo.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Customer

This endpoint updates an existing customer. Provided\_id is required to request a customer, and only the other provided fields will be updated.

### Body

<ParamField body="provided_id" type="string">
  This is the ID you use to identify this customer in your database.
</ParamField>

<ParamField body="new_provided_id" type="string">
  Set this field if you'd like to change the ID used to identify the customer in the database. This
  will replace the current `provided_id`.
</ParamField>

<ParamField body="name" type="string">
  This is the name of the customer.
</ParamField>

<ParamField body="mapping" type="object">
  This is a JSON mapping of schema id to either the data source that this user group should be
  associated with.
</ParamField>

<ParamField body="is_demo_group" type="boolean">
  Set this boolean parameter to true to make data panels include a demo watermark for the customer.
  Demo customers do not count towards paid user groups. Default value is false.
</ParamField>

<ParamField body="properties" type="object">
  This is a JSON object for properties assigned to this customer. These will be accessible through
  variables in the dashboards and SQL editor
</ParamField>

<ParamField body="emails" type="string[]">
  This is an array of email addresses to add to the customer.
</ParamField>

<ParamField body="group_tags" type="string[]">
  An array of group tag names to assign to the customer. This will override previous group tag
  assignment if specified. Supplying the empty array will remove all group tags. Group tag names
  must be of existing group tags, and these can be created with the create\_group\_tag endpoint.
</ParamField>

<ParamField body="hierarchy_level_name" type="string">
  The name of the hierarchy level to assign to the customer. Must be an existing hierarchy level.
  This will override previous assignment. If you do not have a hierarchy set up and would like one,
  reach out to customer support.
</ParamField>

<ParamField body="parent_provided_id" type="string">
  This is an identifier for a parent customer matching the parent's `provided_id`. If provided, the
  customer will be set as a child of the parent customer, and will have its `computed_properties`
  and `computed_parent_schema_datasource_mapping` fields inherit values from the parent customer.
  Note that parents must be at a strictly higher hierarchy level than their children. You can
  contact customer support to set up a hierarchy for your customers.
</ParamField>

### Response

<ResponseField name="success" type="number">
  Indicates whether the call was successful. 1 if successful, 0 if not.
</ResponseField>

<ResponseField name="customer" type="object">
  The contents of the customer

  <Expandable title="Toggle object">
    <ResponseField name="token" type="string">
      The customer token (customerToken or CUSTOMER\_TOKEN) that will be used to identify which customer
      is viewing the dashboard. You should save this on your end to use when rendering an embedded
      dashboard by passing this token into the web component or iframe. Example usage
      [here](/embedding-documentation/dashboard/option-1-web-component/).
    </ResponseField>

    <ResponseField name="name" type="string">
      The display name you provided for your customer in Explo.
    </ResponseField>

    <ResponseField name="provided_id" type="string">
      The ID you use to identify this customer in your database that you provided. This is also the ID
      you will use to reference your customer in Explo queries or access your customer via the API. For
      more information on example usage, check out [this section](/creating-dashboards/variables/tips).
    </ResponseField>

    <ResponseField name="emails" type="object">
      An array of email addresses you provided for your customer.
    </ResponseField>

    <ResponseField name="group_tags" type="object">
      An array of updated group tag names that have been assigned to this customer
    </ResponseField>

    <ResponseField name="hierarchy_level" type="string">
      The name of the assigned hierarchy level.
    </ResponseField>

    <ResponseField name="access_group" type="string or null">
      If present, the name of the assigned data visibility group.
    </ResponseField>

    <ResponseField name="is_demo_group" type="boolean">
      True if this customer is a demo customer, which means that data panels will include a demo
      watermark for the customer. Demo customers do not count towards paid customers.
    </ResponseField>

    <ResponseField name="properties" type="JSON or null">
      A set of key-value pairs assigned to this customer. These will be accessible through variables in
      the dashboards and SQL editor. More information on properties can be found in [this
      section](/creating-dashboards/variables/passing-in-variables).
    </ResponseField>

    <ResponseField name="computed_properties" type="JSON">
      A properties object based on the provided properties of this customer and any inherited properties
      from parent customers.
    </ResponseField>

    <ResponseField name="parent_schema_datasource_mapping" type="JSON | Null">
      A set of key-values pairs that map a schema id to the data source that this customer loads data
      from. For more information on schemas and data sources, check out [this
      section](/database-setup/data-sources-and-schema/).
    </ResponseField>

    <ResponseField name="computed_parent_schema_datasource_mapping" type="JSON">
      A schema datasource mapping object based on the parent\_schema\_datasource\_mapping of the customer
      and any inherited parent\_schema\_datasource\_mapping from parent customers.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash Example Request theme={null}
  curl --location --request POST 'https://api.explo.co/api/update_customer/' \
  --header 'Content-Type: application/json' \
  --header 'Explo-Authorization: Token <token>' \
  --data-raw '{
      "provided_id": "example_1",
      "properties": {"filterValue": "new_value"},
      "emails": ["new_email@example.com"],
      "group_tags": ["engineers", "sales"],
      "hierarchy_level_name": "Level 1"
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": 1,
    "customer": {
      "token": "<customer_token_to_auth_dashboard>",
      "name": "Example 1",
      "provided_id": "example_1",
      "is_demo_group": false,
      "emails": ["new_email@example.com"],
      "group_tags": ["engineers", "sales"],
      "properties": { "filterValue": "new_value" },
      "computed_properties": { "filterValue": "new_value" },
      "access_group": "Production",
      "parent_schema_datasource_mapping": {"40": "213": "134": 386"},
      "computed_parent_schema_datasource_mapping": {"40": "213": "134": 386"},
      "hierarchy_level": "Level 1"
    }
  }
  ```
</ResponseExample>
