FruxonDocs
Agent NetworkGraph

Connects a NEW channel to this Application in one step — mints the doorway and claims its address.

Creates a channel inside this Application; a channel is never created unbound. Mints the inbound doorway (a MANUAL inbound channel binding, or the agent's messaging endpoint for endpoint-owned providers such as Telegram, whose config is both credential and address) and creates its messaging entry point here. The agent must already be a member of this Application. Returns 409 when the address is already used by another Application; move a claimed address with `:move` instead. Returns the one-time webhook URL when a new channel binding was created. An Email (Gmail) channel is checked and set up further: a connection without the `gmail.modify` scope is refused before anything is created (400, code `EMAIL_CHANNEL_SCOPES_MISSING`). Its admission follows the Application's policy for new senders, which connect does not change; the response's `email.unknownSenders` says what that policy does to someone who writes in, and `warnings` lists what did not stop the connect, such as `AGENT_SENDS_GMAIL`.

POST
/v1/tenants/{tenant}/networks/{network}/entryPoints/connect
AuthorizationBearer <token>

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

In: header

Path Parameters

network*string

The target Network id.

Formatuuid
tenant*string

The tenant identifier

The integration config, channel address parameters, and target member agent.

integrationConfigId?string

The tenant integration config carrying the channel (the connection's credentials).

Formatuuid
agentId?string

The member agent the channel routes to. It must already be a member of this Network.

name?string|null

Operator-facing channel name; defaults to the config's display name.

parameters?|null

Provider-specific address parameters selecting the channel on the connection (Slack channel id, phone number, …). Ignored for endpoint-owned providers, whose config IS the address (a Telegram bot token).

replaceExistingEndpoint?boolean

Endpoint-owned providers only: when the agent already fronts a different config's bot for this provider (one active bot per agent per provider), deactivate that bot and connect this one in its place. Without it such a connect is rejected 409 so a bot swap is always an explicit choice. The displaced bot keeps its endpoint record (reactivatable later); its doorway rows are removed.

email?

Email (Gmail) channels only: the channel's email settings, the same fields as its emailSettings resource without the version. Saved before the channel is activated; on a channel connected before, they replace its settings. Omitted, a new channel starts on the defaults (Draft, no recipient filter, no signature, 300 runs a day) and an existing one keeps its settings. Refused (400) on any other provider.

[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/networks/497f6eca-6276-4993-bfeb-53cbbbba6f08/entryPoints/connect" \  -H "Content-Type: application/json" \  -d '{}'
{
  "entryPoint": {
    "id": "00000000-0000-0000-0000-000000000000",
    "networkId": "00000000-0000-0000-0000-000000000000",
    "networkIntegrationBindingId": "00000000-0000-0000-0000-000000000000",
    "kind": "MESSAGING",
    "provider": "string",
    "externalAddress": "string",
    "displayName": "string",
    "integrationConfigId": "00000000-0000-0000-0000-000000000000",
    "integrationConfigName": "string",
    "agentId": "string",
    "agentMembershipId": "00000000-0000-0000-0000-000000000000",
    "unknownSenderAdmission": "REQUEST_ACCESS",
    "knownUnenrolledAdmission": "REQUEST_ACCESS",
    "escalationDeskId": "00000000-0000-0000-0000-000000000000",
    "routingPolicyKey": "string",
    "sourceKind": "CHANNEL_BINDING",
    "sourceId": "00000000-0000-0000-0000-000000000000",
    "operationalStatus": "ACTIVE",
    "createdAt": 0,
    "modifiedAt": 0
  },
  "webhookUrl": "string",
  "email": {
    "settings": {
      "replyMode": "DRAFT",
      "recipientFilter": [
        "string"
      ],
      "groupAddress": "string",
      "staffFromMailboxDomain": false,
      "staffAddresses": [
        "string"
      ],
      "signature": "string",
      "mailboxDailyRunLimit": 0,
      "version": 0,
      "activationState": "PENDING",
      "activatedAtMs": 0
    },
    "unknownSenders": {
      "outcome": "ANSWERED",
      "admission": "REQUEST_ACCESS",
      "fromChannelOverride": false,
      "provisioningRule": "MATCH_LIST",
      "explanation": "string"
    },
    "escalationDeskId": "00000000-0000-0000-0000-000000000000",
    "escalationDeskCreated": false
  },
  "warnings": [
    {
      "code": "string",
      "message": "string"
    }
  ],
  "replacedMessagingEndpointId": "00000000-0000-0000-0000-000000000000"
}
{
  "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
}