# Kustomer

> Customer service platform for managing conversations, creating custom objects, and pushing personalization data.

Source: https://cotera.co/docs/reference/tools/individual-tools/kustomer

---

**Authentication Type:** API Key\
**Description:** Customer service platform for managing conversations, creating custom objects, and pushing personalization data.

***

## Authentication

To authenticate, you'll need a Kustomer API key. Learn how to create one in the [Kustomer Help Center](https://help.kustomer.com/api-keys-SJs5YTIWX).

**Required Permissions:**

* Conversations (write) - Add notes to conversations
* Custom Objects (write) - Create custom objects
* Klasses (write) - Create custom Klasses
* Customers (write) - Update customer data

***

## Notes

Add notes to Kustomer conversations for tracking personalization insights and customer interactions.

### Add Note to Conversation

Add a note to a Kustomer conversation.

**Operation Type:** Mutation (Write)

**Parameters:**

* **conversationId** `string` (required): ID of the conversation to add the note to
* **noteBody** `string` (required): Content of the note to add
* **isInternal** `boolean` (required): Whether the note is internal (not visible to customer). Defaults to true

**Returns:**

* **success** `boolean`: Whether the note was added successfully
* **noteId** `string`: ID of the created note (empty string if not available)

**Example Usage:**

```json
{
  "conversationId": "conv_12345abc",
  "noteBody": "Customer showed interest in premium features during this conversation. Recommended upgrade to Pro plan based on their usage patterns and feature requests.",
  "isInternal": true
}
```

***

## Custom Objects

Create custom objects in Kustomer with personalization data and customer associations.

### Create Custom Objects

Create custom objects in Kustomer with personalization data.

**Operation Type:** Mutation (Write)

**Parameters:**

* **klassName** `string` (required): Name of the Klass to create objects for
* **objects** `array of objects` (required): Array of objects to create
  * **title** `string`: Title/name for the object
  * **customerId** `string`: ID of the customer to associate with (use empty string if not applicable)
  * **data** `array of objects`: Custom data fields as key-value pairs
    * **key** `string`: Field name
    * **value** `string`: Field value
* **fieldTypes** `array of objects` (required): Field type mappings as key-value pairs
  * **key** `string`: Field name
  * **value** `string`: Field type (txt, str, num, bool, date)

**Returns:**

* **success** `boolean`: Whether objects were created successfully
* **createdCount** `number`: Number of objects successfully created
* **objectIds** `array of strings`: IDs of the created objects

**Example Usage:**

```json
{
  "klassName": "Customer_Preferences",
  "objects": [
    {
      "title": "John Smith Preferences",
      "customerId": "cust_abc123",
      "data": [
        {
          "key": "preferred_contact_method",
          "value": "email"
        },
        {
          "key": "product_interest_score",
          "value": "8.5"
        },
        {
          "key": "last_interaction_date",
          "value": "2024-01-15"
        },
        {
          "key": "is_premium_customer",
          "value": "true"
        }
      ]
    }
  ],
  "fieldTypes": [
    {
      "key": "preferred_contact_method",
      "value": "str"
    },
    {
      "key": "product_interest_score",
      "value": "num"
    },
    {
      "key": "last_interaction_date",
      "value": "date"
    },
    {
      "key": "is_premium_customer",
      "value": "bool"
    }
  ]
}
```

***

## Klasses

Create Kustomer Klasses (custom data schemas) for defining personalization data structures. Note: Attributes must be added manually through the Kustomer UI.

### Create Custom Klass

Create a new custom Klass definition in Kustomer. Attributes must be added manually through the UI.

**Operation Type:** Mutation (Write)

**Parameters:**

* **name** `string` (required): Name of the Klass (must be unique in your organization)
* **displayName** `string` (required): Human-readable display name for the Klass
* **description** `string` (required): Description of what this Klass represents (use empty string if not applicable)
* **icon** `string` (required): Icon identifier for the Klass (use empty string if not applicable)

**Returns:**

* **success** `boolean`: Whether the Klass was created successfully
* **klassId** `string`: ID of the created Klass
* **name** `string`: Name of the created Klass
* **note** `string`: Additional information about the creation

**Example Usage:**

```json
{
  "name": "Purchase_History",
  "displayName": "Customer Purchase History",
  "description": "Tracks customer purchase patterns, preferences, and transaction history for personalization",
  "icon": "shopping-cart"
}
```

***

## Customer Data

Update customer records with personalization data.

### Update Customer Data

Update customer with personalization data.

**Operation Type:** Mutation (Write)

**Parameters:**

* **customerId** `string` (required): ID of the customer to update
* **personalizationData** `array of objects` (required): Personalization data as key-value pairs
  * **key** `string`: Data field name
  * **value** `string`: Data field value

**Returns:**

* **success** `boolean`: Whether customer was updated successfully
* **customerId** `string`: ID of the updated customer

**Example Usage:**

```json
{
  "customerId": "cust_abc123",
  "personalizationData": [
    {
      "key": "communication_preference",
      "value": "email_only"
    },
    {
      "key": "preferred_language",
      "value": "spanish"
    },
    {
      "key": "loyalty_tier",
      "value": "gold"
    },
    {
      "key": "last_purchase_category",
      "value": "electronics"
    },
    {
      "key": "support_priority_level",
      "value": "high"
    }
  ]
}
```

***

## Common Use Cases

**Personalized Customer Support:**

* Add detailed notes to conversations with customer preferences, issues, and resolution context for future reference
* Update customer records with personalization data like communication preferences, product interests, and support history
* Create custom objects to track customer journey milestones, satisfaction scores, and engagement patterns

**Customer Data Organization:**

* Create custom Klasses to define structured data schemas for different types of customer information
* Store complex customer data in custom objects with proper field typing and customer associations
* Organize personalization data across multiple touchpoints and interaction channels for comprehensive customer profiles

**Support Workflow Enhancement:**

* Track internal notes on customer interactions to improve support quality and consistency across team members
* Associate custom data objects with specific customers to provide context-rich support experiences
* Update customer profiles with real-time personalization data from various business systems and touchpoints

**Business Intelligence and Analytics:**

* Create structured data objects for tracking customer behavior patterns, preferences, and satisfaction metrics
* Store personalization insights in custom Klasses for analysis and reporting across customer segments
* Maintain comprehensive customer data records for predictive analytics and personalized marketing campaigns

