KosmoKrator

sales

Zendesk Sell Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Zendesk Sell KosmoKrator integration.

7 functions 6 read 1 write Bearer token auth

Lua Namespace

Agents call this integration through app.integrations.zendesk_sell.*. Use lua_read_doc("integrations.zendesk-sell") inside KosmoKrator to discover the same reference at runtime.

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Zendesk Sell — Lua API Reference

list_contacts

List contacts in Zendesk Sell with pagination and sorting.

Parameters

NameTypeRequiredDescription
pageintegernoPage number (1-based). Defaults to 1.
per_pageintegernoContacts per page (max 100). Defaults to 25.
sort_bystringnoSort field (e.g. “created_at”, “updated_at”, “last_name”).

Example

local result = app.integrations["zendesk-sell"].list_contacts({
  page = 1,
  per_page = 25,
  sort_by = "created_at"
})

for _, contact in ipairs(result.data) do
  print(contact.first_name .. " " .. contact.last_name)
end

get_contact

Get full details of a specific contact.

Parameters

NameTypeRequiredDescription
idintegeryesThe contact ID.

Example

local result = app.integrations["zendesk-sell"].get_contact({
  id = 12345
})

print(result.data.first_name .. " " .. result.data.last_name)
print(result.data.email)

create_contact

Create a new contact in Zendesk Sell.

Parameters

NameTypeRequiredDescription
first_namestringyesContact first name.
last_namestringyesContact last name.
emailstringnoContact email address.
organization_idintegernoID of the organization to associate.

Example

local result = app.integrations["zendesk-sell"].create_contact({
  first_name = "Jane",
  last_name = "Doe",
  email = "[email protected]",
  organization_id = 100
})

print("Created contact ID: " .. result.data.id)

list_deals

List deals with pagination and optional status filter.

Parameters

NameTypeRequiredDescription
pageintegernoPage number (1-based). Defaults to 1.
per_pageintegernoDeals per page (max 100). Defaults to 25.
statusstringnoFilter by status: “open”, “won”, “lost”, “abandoned”.

Example

local result = app.integrations["zendesk-sell"].list_deals({
  page = 1,
  per_page = 25,
  status = "open"
})

for _, deal in ipairs(result.data) do
  print(deal.name .. ": $" .. deal.value)
end

get_deal

Get full details of a specific deal.

Parameters

NameTypeRequiredDescription
idintegeryesThe deal ID.

Example

local result = app.integrations["zendesk-sell"].get_deal({
  id = 67890
})

print(result.data.name)
print("Value: $" .. result.data.value)
print("Status: " .. result.data.status)

list_leads

List leads with pagination.

Parameters

NameTypeRequiredDescription
pageintegernoPage number (1-based). Defaults to 1.
per_pageintegernoLeads per page (max 100). Defaults to 25.

Example

local result = app.integrations["zendesk-sell"].list_leads({
  page = 1,
  per_page = 25
})

for _, lead in ipairs(result.data) do
  print(lead.first_name .. " " .. lead.last_name .. " - " .. lead.status)
end

get_current_user

Get the profile of the currently authenticated Zendesk Sell user.

Parameters

None.

Example

local result = app.integrations["zendesk-sell"].get_current_user({})

print("Connected as: " .. result.data.first_name .. " " .. result.data.last_name)
print("Email: " .. result.data.email)

Multi-Account Usage

If you have multiple Zendesk Sell accounts configured, use account-specific namespaces:

-- Default account (always works)
app.integrations["zendesk-sell"].function_name({...})

-- Explicit default (portable across setups)
app.integrations["zendesk-sell"].default.function_name({...})

-- Named accounts
app.integrations["zendesk-sell"].work.function_name({...})
app.integrations["zendesk-sell"].personal.function_name({...})

All functions are identical across accounts — only the credentials differ.

Raw agent markdown
# Zendesk Sell — Lua API Reference

## list_contacts

List contacts in Zendesk Sell with pagination and sorting.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number (1-based). Defaults to 1. |
| `per_page` | integer | no | Contacts per page (max 100). Defaults to 25. |
| `sort_by` | string | no | Sort field (e.g. "created_at", "updated_at", "last_name"). |

### Example

```lua
local result = app.integrations["zendesk-sell"].list_contacts({
  page = 1,
  per_page = 25,
  sort_by = "created_at"
})

for _, contact in ipairs(result.data) do
  print(contact.first_name .. " " .. contact.last_name)
end
```

---

## get_contact

Get full details of a specific contact.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The contact ID. |

### Example

```lua
local result = app.integrations["zendesk-sell"].get_contact({
  id = 12345
})

print(result.data.first_name .. " " .. result.data.last_name)
print(result.data.email)
```

---

## create_contact

Create a new contact in Zendesk Sell.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `first_name` | string | yes | Contact first name. |
| `last_name` | string | yes | Contact last name. |
| `email` | string | no | Contact email address. |
| `organization_id` | integer | no | ID of the organization to associate. |

### Example

```lua
local result = app.integrations["zendesk-sell"].create_contact({
  first_name = "Jane",
  last_name = "Doe",
  email = "[email protected]",
  organization_id = 100
})

print("Created contact ID: " .. result.data.id)
```

---

## list_deals

List deals with pagination and optional status filter.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number (1-based). Defaults to 1. |
| `per_page` | integer | no | Deals per page (max 100). Defaults to 25. |
| `status` | string | no | Filter by status: "open", "won", "lost", "abandoned". |

### Example

```lua
local result = app.integrations["zendesk-sell"].list_deals({
  page = 1,
  per_page = 25,
  status = "open"
})

for _, deal in ipairs(result.data) do
  print(deal.name .. ": $" .. deal.value)
end
```

---

## get_deal

Get full details of a specific deal.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The deal ID. |

### Example

```lua
local result = app.integrations["zendesk-sell"].get_deal({
  id = 67890
})

print(result.data.name)
print("Value: $" .. result.data.value)
print("Status: " .. result.data.status)
```

---

## list_leads

List leads with pagination.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number (1-based). Defaults to 1. |
| `per_page` | integer | no | Leads per page (max 100). Defaults to 25. |

### Example

```lua
local result = app.integrations["zendesk-sell"].list_leads({
  page = 1,
  per_page = 25
})

for _, lead in ipairs(result.data) do
  print(lead.first_name .. " " .. lead.last_name .. " - " .. lead.status)
end
```

---

## get_current_user

Get the profile of the currently authenticated Zendesk Sell user.

### Parameters

None.

### Example

```lua
local result = app.integrations["zendesk-sell"].get_current_user({})

print("Connected as: " .. result.data.first_name .. " " .. result.data.last_name)
print("Email: " .. result.data.email)
```

---

## Multi-Account Usage

If you have multiple Zendesk Sell accounts configured, use account-specific namespaces:

```lua
-- Default account (always works)
app.integrations["zendesk-sell"].function_name({...})

-- Explicit default (portable across setups)
app.integrations["zendesk-sell"].default.function_name({...})

-- Named accounts
app.integrations["zendesk-sell"].work.function_name({...})
app.integrations["zendesk-sell"].personal.function_name({...})
```

All functions are identical across accounts — only the credentials differ.

Metadata-Derived Lua Example

local result = app.integrations.zendesk_sell.zendesk_sell_list_contacts({
  page = 1,
  per_page = 1,
  sort_by = "example_sort_by"
})
print(result)

Functions

zendesk_sell_list_contacts

List contacts in Zendesk Sell. Returns paginated results sorted by the specified field. Use this to browse, search, or export contacts from the CRM.

Operation
Read read
Full name
zendesk-sell.zendesk_sell_list_contacts
ParameterTypeRequiredDescription
page integer no Page number (1-based). Defaults to 1.
per_page integer no Number of contacts per page (max 100). Defaults to 25.
sort_by string no Field to sort by (e.g. "created_at", "updated_at", "last_name"). Defaults to the API default.

zendesk_sell_get_contact

Get full details of a specific contact in Zendesk Sell by its ID. Returns all contact fields including email, phone, organization, and custom fields.

Operation
Read read
Full name
zendesk-sell.zendesk_sell_get_contact
ParameterTypeRequiredDescription
id integer yes The contact ID.

zendesk_sell_create_contact

Create a new contact in Zendesk Sell. Provide at least a first name and last name. Optionally include email and organization ID to associate the contact with an existing organization.

Operation
Write write
Full name
zendesk-sell.zendesk_sell_create_contact
ParameterTypeRequiredDescription
first_name string yes Contact first name.
last_name string yes Contact last name.
email string no Contact email address.
organization_id integer no ID of the organization to associate this contact with.

zendesk_sell_list_deals

List deals in Zendesk Sell. Optionally filter by status (open, won, lost, abandoned). Returns paginated results.

Operation
Read read
Full name
zendesk-sell.zendesk_sell_list_deals
ParameterTypeRequiredDescription
page integer no Page number (1-based). Defaults to 1.
per_page integer no Number of deals per page (max 100). Defaults to 25.
status string no Filter by deal status: "open", "won", "lost", or "abandoned".

zendesk_sell_get_deal

Get full details of a specific deal in Zendesk Sell by its ID. Returns deal value, status, associated contact and organization, pipeline stage, and custom fields.

Operation
Read read
Full name
zendesk-sell.zendesk_sell_get_deal
ParameterTypeRequiredDescription
id integer yes The deal ID.

zendesk_sell_list_leads

List leads in Zendesk Sell. Returns paginated results with lead details including contact info, status, and source.

Operation
Read read
Full name
zendesk-sell.zendesk_sell_list_leads
ParameterTypeRequiredDescription
page integer no Page number (1-based). Defaults to 1.
per_page integer no Number of leads per page (max 100). Defaults to 25.

zendesk_sell_get_current_user

Get the profile of the currently authenticated Zendesk Sell user. Use this to verify credentials and identify the connected account.

Operation
Read read
Full name
zendesk-sell.zendesk_sell_get_current_user
ParameterTypeRequiredDescription
No parameters.