# Integration records

Read the Communication and Tooling records used by the collection workflows.

## Communication

| Entity | Role in collection |
| --- | --- |
| Message | Delivery record: Name, Body, Sent At, Status, Failure Reason, External Message Id, Channel, Rule, Recipients (Membership), About Keys |
| Channel | Describes the configured channel; Channel Type and External Identifier identify its kind and external destination |
| Notification Rule | Names the rule and stores Template, Trigger, Active and audience links |
| Membership (mirror) | Resolves the recipient across bases using Membership # |

Daily Digest writes Message and links configured Channel and Rule records. Its blocks are built in workflow code; it does not dynamically render Notification Rule.Template or use the rule’s Active flag as its scheduling gate. Message also contains Direction, Thread Id and Context fields, but the reviewed message-shaping code does not populate those fields. Do not treat the Message log as a complete interaction transcript. Since 2026-10-26 a Sent row is a real delivery with the Slack identifier in External Message Id; earlier dry-run rows carry an identifier that starts with `dry-run-`.

## Tooling and Access

| Entity | Fields used by collection |
| --- | --- |
| Person (mirror) | Full name* for normalized name matching |
| Identity Binding | Person, Account and Valid Through; Valid From exists but is not checked by the resolver |
| Tool Account | Kind, External Identifier, Workspace, Workspace (External Identifier), Access Token for bots |
| Tool Workspace | External Identifier as the Slack workspace ID |

The current token source is Access Token, not Secret Ref. No credential values belong in documentation. Source Lifecycle Label and other access metadata do not replace the resolver’s actual checks. Human account selection and bot selection are separate steps joined by the chosen workspace ID.

## Cache storage

The n8n Data Table stores workspace_id, access_token, bot_user_id, source_record_id, cache_error and expires_at. workspace_id is the logical key; the consumer rejects duplicate rows. expires_at is milliseconds since epoch. Invalid source entries clear credentials and set expiry to zero. Only counts and error codes belong in shareable diagnostics. See [Workspace cache](/automations/workspace-token-cache).