Use Topline
Use Topline: Slack and Google Chat memory
Connect Slack or Google Chat, understand silent space capture and absent-app DM boundaries, use explicit memory controls, import history, and troubleshoot delivery.
Slack and Google Chat Memory Guide
Topline can capture useful conversation context from Slack channels and Google Chat spaces without requiring someone to address the bot on every message. Capture is limited to spaces where the Topline app is present and remains permission-scoped to the people who can currently reach that space.
What Topline can and cannot see
Adding Topline to a supported channel or space starts capture for that boundary. Topline does not scan an entire Slack workspace or Google Workspace domain, cannot read a person-to-person conversation where the app is absent, and does not make captured space content company-wide automatically.
Ordinary human messages are captured silently. Topline does not call the assistant runtime or post a reply for each message. Mentions, direct conversations with the app, commands, and interactive cards remain assistant turns.
Access and administration
Tenant administrators with org.manage use Account > Chat Integrations to connect or disable providers, review captured spaces, inspect delivery state, and start a historical import.
Administration does not grant access to private conversation content. An administrator can manage capture state, but must also be a current linked member of an external space to retrieve its messages, episode context, citations, or external-space memory. Company and ordinary Topline team memory continue to follow their destination audience.
An active Topline account must be linked to the provider identity before that person receives retrieval access or can use an explicit memory control. Explicit assistant and memory controls also require harness.chat. Promoting memory to a team or the company requires memory.approve.scope.
Connect Slack
- Open Account > Chat Integrations.
- Confirm the Slack card says Ready. If it says Config needed, ask the platform operator to complete the Slack app and server configuration.
- Select Connect, approve the requested Slack OAuth scopes, and return to Topline.
- Add the Topline app to each channel or supported conversation that should be captured.
- Open Captured spaces and confirm the expected channel appears with Capture active.
Connecting Slack does not enroll every channel. Capture starts only after Topline is added to a specific boundary.
Connect Google Chat
- Install the shared Topline app from its Google Workspace Marketplace listing for the intended domain.
- In Account > Chat Integrations, confirm the Google Chat card says Ready, enter the Workspace domain, and select Enable.
- Add the Topline app to each Google Chat space that should be captured.
- In Captured spaces, confirm the space appears and Passive events becomes active.
When Topline is added, the authenticated add event binds that exact Google space to the enabled company before passive delivery starts. Later messages and card actions are routed by the stored space binding, not by a participant's email domain, so guests from another company do not move the conversation into their tenant.
Being connected, renewal due, or not receiving ordinary messages means passive message delivery is not currently proven. Refresh the page after the platform operator repairs the subscription.
Intake lanes
| Lane | Trigger | Result |
|---|---|---|
| Live space capture | An ordinary human message in a space containing Topline | Stores normalized evidence silently with the external-space audience. |
| Explicit memory | A supported remember this phrase | Processes the surrounding conversation and creates durable memory at the authorized destination. |
| Assistant turn | A DM to the app, mention, command, or interactive action | Runs a normal Topline turn and replies in the provider conversation. |
| Historical import | An administrator selects Import history for one captured space | Reads provider-visible history asynchronously and retains that space's audience. |
No separate memory inbox is required for ordinary capture. The app membership is the intake boundary.
How conversations become searchable context
- Topline authenticates and deduplicates the provider event.
- It immediately stores normalized message evidence. Credential-shaped text is redacted before storage, and raw provider payloads are not retained.
- Provider threads remain one conversation episode. Unthreaded messages within a 30-minute activity window are grouped into an episode so retrieval has more context than one isolated message.
- After 15 minutes of quiet, Topline builds searchable episode context. A delayed task is requested for each changed episode; hourly and nightly reconciliation provide recovery when enabled.
- Edits create a new temporal revision. Provider deletions remove the deleted text and rebuild or retract derived context.
Postgres evidence and revisions are authoritative. Search records, embeddings, and graph projections are derived and rebuildable.
Save, correct, or retract memory from chat
Use one of these phrases in a captured conversation:
remember thissaves for the current external space by default;remember this for mesaves personal memory for the linked sender;remember this for the companyrequires company-scope approval authority;remember this for team: Operationsrequires approval authority and exactly one accessible Topline team namedOperations;correction: ...,actually: ..., orupdate: ...records a new conversation revision; andforget this memory,retract that conversation, orremove this memoryrequests retraction.
Topline replies with the outcome for explicit controls. Corrections to already promoted memory can return it to review. Personal memory can be retracted only by its owner. Shared promoted memory can be retracted by its contributor or an organization administrator.
Historical import
In Captured spaces, select Import history, optionally choose a UTC start and end date, and select Start import. Both selected calendar dates are included. Internally, Topline sends midnight at the start date as the inclusive lower bound and midnight after the end date as the exclusive upper bound; the same bounds apply to replies loaded from a Slack thread. The import continues after leaving the page. Its visible states are History queued, Importing history, History imported, and Import failed.
The import rechecks the active installation and space, reads only history available to the app's current provider credentials, includes provider threads when available, and remains scoped to the external space. Imported history never becomes company memory automatically.
Visibility, privacy, and lifecycle
- External-space retrieval follows current linked membership. Removing a member removes that scope membership.
org.managecontrols installation and import operations; it does not bypass external-space membership for content retrieval.- Missing and unauthorized source citations both return Not found, preventing message-id enumeration.
- Disabling an installation or removing Topline from a space stops capture, archives its derived context, closes active revisions, and archives promoted memory derived from the removed source.
- Reconnecting reactivates only a provider boundary Topline observes again; it does not silently restore every prior space.
- Provider receipts retain route identifiers, timestamps, hashes, and counts rather than raw event bodies.
Do not paste passwords, tokens, private keys, or authentication links into provider chat. Credential-shaped values are redacted as a defense in depth, not as a safe secret-entry workflow.
Errors and recovery
- Provider says Config needed: a platform operator must complete the server configuration before an administrator can connect it.
- Slack says permission changed: the administrator who started OAuth no longer has
org.manage; restore the intended role if appropriate and restart the connection flow. - Space is missing: confirm Topline was added to that exact space, the installation is active, and the provider delivered a membership or message event.
- Google Chat says not receiving ordinary messages: the Workspace Events subscription failed or expired; ask the platform operator to inspect the subscription error and hourly reconciliation.
- Import failed: confirm the app still belongs to the space and its credentials can read the selected dates, then retry from Import history.
- Explicit control is denied: confirm the sender has an active linked Topline account,
harness.chat, and any required team/company approval capability. - Memory is missing after leaving a space: external-space memory follows current membership by design.
Enablement, smoke check, and rollback
For enablement, connect one provider, add Topline to a harmless test space, send two ordinary messages, and verify the space shows a recent captured time without a bot reply. After the quiet window, confirm an authorized member can retrieve the episode with a source citation. Then test remember this at the external-space audience and retract the test memory.
Roll back by selecting Disable for the installation or removing Topline from the individual space. Verify capture becomes removed, derived retrieval no longer returns the test conversation, and Google passive subscriptions are removed or allowed to expire after a failed provider-side cleanup.
Current limitations
- Supported passive providers are Slack and Google Chat.
- Topline cannot ingest conversations where the app is not a member.
- Earlier history requires an explicit per-space import.
- Passive capture records that attachments exist but does not index attachment contents into the conversation episode. Send a required file through a supported Topline file workflow.
- Installation state alone is not proof of company-wide coverage; each captured space and its delivery state must be checked.