FruxonDocs
Agent NetworkParticipants

Dry-runs a directory import — enumerates the integration's contacts and returns an aggregate report, writing nothing.

Reads the whole contact base of the given integration config through its `IParticipantDirectorySource`, runs each contact through the same environment resolver the live approve gate uses, and aggregates the result — how many contacts would affiliate with an environment, the standalone-vs-chain split, per-attribute coverage (e.g. how many carry a branch), and a sample of contacts that would stay unaffiliated. Use it to gauge data quality before running a real import.

GET
/v1/tenants/{tenant}/directory/importPreview
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 enumerate (e.g. the TexterChat connection).

Formatuuid
provider?string

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

Default"texterchat"
targetNetworkId?string

Ask the dry run about the enrollment half too: how many of the swept contacts would start being served in this application, how many it already serves, how many are blocked or ineligible, and how many fall outside the selected accounts. Omit for a Directory-only preview.

Formatuuid
enrollmentScope?string

As on the import: ALL_CONTACTS (default) or SELECTED_ACCOUNTS.

Value in"UNSPECIFIED" | "ALL_CONTACTS" | "SELECTED_ACCOUNTS"
environmentIds?array<string>

The accounts, repeated. Required with SELECTED_ACCOUNTS.

Response Body

curl -X GET "https://api.fruxon.com/v1/tenants/string/directory/importPreview"
{
  "provider": "string",
  "totalContacts": 0,
  "contactsWithEnvironment": 0,
  "contactsUnaffiliated": 0,
  "contactsWithStableId": 0,
  "distinctEnvironments": 0,
  "standaloneEnvironments": 0,
  "chainedEnvironments": 0,
  "distinctChains": 0,
  "slotPresence": {},
  "labelCounts": {},
  "sampleUnaffiliatedAddresses": [
    "string"
  ],
  "contactsNew": 0,
  "contactsToUpdate": 0,
  "contactsUnchanged": 0,
  "contactsWithWithheldValues": 0,
  "changesByField": {},
  "withheldByField": {},
  "sampleChanges": [
    {
      "address": "string",
      "changes": [],
      "withheld": []
    }
  ],
  "enrollment": {
    "networkId": "00000000-0000-0000-0000-000000000000",
    "scope": "ALL_CONTACTS",
    "wouldGrant": 0,
    "wouldRevive": 0,
    "alreadyServed": 0,
    "blocked": 0,
    "ineligible": 0,
    "outOfScope": 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
}