Import from Zendesk
Imports Zendesk Support tickets in the background, with their public replies, and each requester as a contact; nobody is emailed.
$0.001 per record imported (created or updated)
From your agent’s balance. A call that fails costs nothing.
An example
Bring our old Zendesk tickets over so we keep the history. Tom made an API token.
Your agent callsimport_from_zendesk$0.001 per record imported (created or updated)
The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.
{
"subdomain": "hansenvoss",
"email": "tom.okafor@hansenvoss.example",
"api_token": "0000000000000000000000000000000000000000"
}Use it when
The business moves its help desk from Zendesk.
- For the contacts and companies of a CRM, use
import_from_hubspot.
What it does
Import a Zendesk Support account's tickets, with their public replies as the conversation, and each requester as a contact (matched to existing contacts by email). Status new/open becomes open, pending/on-hold pending, solved/closed resolved; priority, subject and dates are kept. Nobody is emailed. Needs the subdomain (acme for acme.zendesk.com), and an agent's or admin's email with an API token from Zendesk Admin Center > Apps and integrations > APIs > API tokens. With an admin's email every ticket comes over, archived ones included; with an agent's, Zendesk leaves out archived tickets. Wrong credentials are refused before anything is reserved or charged; the token is kept only encrypted while the import runs, then erased. A ticket and its requester count as records; replies come with their ticket. Runs in the background for up to 15 minutes and imports up to max_records records; when more remain, the result has next_cursor: call again with the same arguments plus next_cursor to continue. Running it again never duplicates anything: changed records are updated, unchanged ones skipped. Unchanged records are free, and 1,000 imported records cost $1. max_records x $0.001 is reserved while it runs and only what was imported is charged; lower max_records if your balance is smaller.
What comes back
When it finishes: source, done, records_imported, imported (per kind: created, updated, unchanged, skipped), and when more remain next_cursor, stopped_because and how to continue. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
subdomainRequired | string | The "acme" in acme.zendesk.com. 1 to 120 characters. |
emailRequired | string | The email of the agent or admin the API token is used as. 3 to 254 characters. |
api_tokenRequired | string | A Zendesk API token. 10 to 200 characters. |
max_records | integer | The most records this run may create or update (and reserve $0.001 each for). 1 to 100,000. Default: 10000. |
next_cursor | string | The next_cursor a previous run of this import returned, to continue where it stopped. Up to 2,000 characters. |
The call
Over MCP, call import_from_zendesk on https://api.conecto.chat/mcp/imports. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/import_from_zendesk \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"subdomain":"hansenvoss","email":"tom.okafor@hansenvoss.example","api_token":"0000000000000000000000000000000000000000"}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
credentials_refused422 | Zendesk refused the email and token, they are not an agent's, or no Zendesk account answers at the subdomain. | Use an agent's or admin's email with an API token from the Admin Center, and check subdomain. |
invalid_input400 | subdomain is not the name before .zendesk.com. | Send it like hansenvoss for hansenvoss.zendesk.com. |
vendor_unavailable502 | The other service did not answer. | Try again in a few minutes, with the same next_cursor if you passed one; nothing was charged. |
in_progress409 | An import from the same tool is running already. | Wait for it (account_get_call), then continue with the next_cursor it returns. |
invalid_cursor400 | next_cursor is not one this import returned. | Pass back exactly the next_cursor of the last run, or leave it out to start again (nothing is duplicated). |
More Import tools
All 5 tools- Import contacts or companies from a CSV
import_csvImports contacts or companies from a CSV, as text or a link, matching columns by their names; importing it again updates instead of duplicating.$0.001 per record imported (created or updated) - Import from HubSpot
import_from_hubspotImports a HubSpot account in the background: companies, contacts, deals and notes, linked as they were.$0.001 per record imported (created or updated) - Import from Pipedrive
import_from_pipedriveImports a Pipedrive account in the background: organizations, persons, deals, notes and activities, linked as they were.$0.001 per record imported (created or updated) - Import status
import_statusWhat imports brought in so far, per source, and the last 10 import runs with their status, cost and next_cursor.Free*
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md