AI CUSTOMER MEMORY

CS Notes Bot

A Slack bot that turns customer-success notes into a persistent, queryable context layer instead of a trail of scattered docs, DMs, and stale handoff notes.

← Back to Projects
Sample Project

This anonymized portfolio version is based on a customer-success workflow problem: useful account context is created in Slack, but then disappears into scattered Google Docs, Notion pages, DMs, and personal memory.

The bot lets a CSM save notes, todos, recent updates, and account-history questions directly from Slack. Customer context is resolved from the channel name by default, persisted to a database, and queried with Claude when someone asks a question.

Portfolio focus: Workflow-native capture, shared customer memory, Slack product design, LLM Q&A over account history, and a demo path that mirrors a production deployment shape.

/csnote

Capture Notes

Save account context from the customer channel where the work is already happening.

/csnote todo

Track Follow-Ups

Store action items alongside the customer history instead of letting them drift.

/csnote recent

Recover Context

Pull the latest notes before a call, handoff, renewal discussion, or escalation.

/csnote ask

Ask History

Let Claude answer account questions from the stored notes, with dates and caveats.

Question for Northwind Logistics /csnote ask

What is the latest on their SSO rollout? I am jumping on a call with them shortly.

Answer from customer history

Initial setup was completed in March. They are on Okta using a hash-fragment RelayState format.

Pilot group went live with positive feedback, but a redirect-loop bug later affected the rollout.

Before the call: check whether ENG-1421 has shipped and follow up on the SAML attribute mapping doc.

Note for Northwind Logistics #22

Got off the call with them. They are happy about progress and want a couple of feature requests incorporated into the roadmap.

What This Shows

Workflow-Native Product Thinking

The point is not another note-taking surface. It is capturing context in the Slack channel where customer work is already happening.

Successful notes and answers post in-channel so the team shares the same context; errors stay private so typos do not clutter the channel.

Production-Oriented Shape

The repo includes a Slack Bolt app, Socket Mode runtime, customer resolver, SQLite persistence, Claude-powered Q&A, seeded demo data, and tests.

The demo runs locally with SQLite, while the production shape maps to a long-running ECS/Fargate process with Postgres on RDS.

Implementation Notes

01

Channel-based customer resolution. A channel like northwind-channel becomes the default customer context, with an explicit override for cross-customer notes.

02

Persistent customer memory. Notes and todos are stored in a simple Postgres-shaped schema so the local SQLite demo can move cleanly to RDS.

03

LLM Q&A over full note history. Claude answers questions from stored notes and is instructed to cite dates, avoid speculation, and distinguish notes from todos.

04

Private runtime, public value. Socket Mode avoids a public inbound endpoint while still giving the team a Slack-native interface.