← Receivers

visitor:identify

visitor family

Every surface's front door to identify a visitor — mines free text, enriches by email, climbs the ladder, merges tenant-walled candidates, upserts the vCard.

Effect
ask
Awaits an outcome — the call returns the response below.
Caller
manage_actors
The class of authority the caller must already hold, decided from the attested context with no round trip.
Reversible
yes
The effect can be undone by a later call.

Send it with your agent

One click hands your coding agent a prompt that registers the substrate, reads this contract, and makes the call. Launch opens the app; the others copy the prompt.

Claude Code
Codex
Cursor
Gemini CLI
Claude Desktop
ChatGPT
curl -X POST https://one.ie/api/ask/visitor:identify \
  -H "Authorization: Bearer $ONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data": { "email": "sam@acme.com", "source": "chat" }}'

The key is never in a link. npx -y @oneie/cli login writes it to ~/.config/oneie/key on your machine.

Request

Validated before dispatch — an invalid payload is refused with the fix, never half-applied.

  • email string optional
  • phone string optional
  • name string optional
  • handle string optional
  • channel string optional
  • sender string optional
  • visitorHash string optional
  • freeText string optional
  • source door | chat | asked | event required

Response

What comes back from the call.

  • ok boolean
  • aid string
  • merged boolean
  • reason string

Traffic

Every call to visitor:identify, counted where it is dispatched — over HTTP or in-process alike. Aggregate only — no actor, no payload, no workspace.

Counting…

Wiring

Every place in the open source that names visitor:identify, and the file that answers it. Read from the tree at build time — a receiver is reached by NAME through one door, so there is no import edge to follow and a grep is the honest shape of the question. Structure, not volume — the count is in Traffic above.

Called from

API route 1
  • one.ie/web/src/lib/resolvers/visitor.ts:105
Agent runtime 1
  • channels/src/index.ts:841
Workflow 1
  • one.ie/web/src/lib/workflow-templates.ts:919

Answered by

visitor:identify one.ie/web/src/lib/resolvers/visitor.ts:111 Dispatched through POST /api/ask/visitor:identify, after the envelope validates the payload.

visitor family · 1 more

JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "email": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "handle": {
      "type": "string"
    },
    "channel": {
      "type": "string"
    },
    "sender": {
      "type": "string"
    },
    "visitorHash": {
      "type": "string"
    },
    "freeText": {
      "type": "string"
    },
    "source": {
      "type": "string",
      "enum": [
        "door",
        "chat",
        "asked",
        "event"
      ]
    }
  },
  "required": [
    "source"
  ]
}
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "aid": {
      "type": "string"
    },
    "merged": {
      "type": "boolean"
    },
    "reason": {
      "type": "string"
    }
  },
  "required": [
    "ok"
  ]
}