FruxonDocs
Agent NetworkParticipants

Enqueues a real directory import and returns the job to poll

A full import can sweep up to 100k contacts (each creating a participant + environment), which far exceeds a single HTTP request budget — so this does not run the sweep inline. It enqueues a job and returns `202 Accepted` with the run; a background worker then enumerates the integration's contacts, gets-or-creates each contact's environment, and creates a participant (External audience) where none already exists at its address — so a re-run is safe and creates no duplicates. Poll `GET directory/importRuns/{importRun}` for progress and the final counters. Only one import per `(provider, integrationConfigId)` may be in flight; a second request returns `409 Conflict` until the first finishes. Run the dry-run preview first and review the report before importing.

POST
/v1/tenants/{tenant}/directory/import
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

tenant*string

The tenant identifier

Query Parameters

integrationConfigId?string

The tenant integration config to import from (e.g. the TexterChat connection).

Formatuuid
provider?string

The provider/integration key to import from. Defaults to texterchat.

Default"texterchat"

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/directory/import"
{
  "id": "00000000-0000-0000-0000-000000000000",
  "provider": "string",
  "integrationConfigId": "00000000-0000-0000-0000-000000000000",
  "status": "PENDING",
  "participantsCreated": 0,
  "participantsUpdated": 0,
  "participantsExisting": 0,
  "participantsFailed": 0,
  "contactsUnaffiliated": 0,
  "sampleFailures": [
    {
      "address": "string",
      "reason": "string"
    }
  ],
  "errorMessage": "string",
  "createdAt": 0,
  "modifiedAt": 0,
  "startedAt": 0,
  "completedAt": 0
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}