Personal CRM & Assistant

Create your own Chief of Staff!

Personal CRM & Assistant

The smartest assistant that you’ll ever need. It pulls in all your context from the workspace, allows you to set events, reminders, and constant lists of everything you ask it to. It’s smart enough to even create repository changes for you.

Your very own Jarvis.

Setup

1. Make a Telegram bot. Open @BotFather in Telegram, send /newbot, follow the two prompts, copy the token.

2. Add it to Brain. Integrations → Add → Manual credential. Service telegram, one field named botToken holding that token.

3. Connect Google. Integrations → Google → Connect. One consent covers both the inbox and the calendar. Use a dedicated address, not your main personal one, because everything that lands in it becomes a conversation.

4. Run the Assistant agent once. This is the only step that touches Brain itself. It builds the four tables, activates both agents, turns on the Telegram webhook and the inbox poller, and points your bot at this workspace. It reports exactly what it did.

5. Open the bot and say anything. It takes over from there.

If the Run button refuses because the agent arrived as a draft, use Smoke test instead: it runs drafts and does the same work.

It builds its own tables

The four databases are found by NAME and created if they are not there. Nothing in the scripts refers to a table or a column by id.

That matters for one specific reason. An earlier version hardcoded the ids, which is the normal way to write a Brain agent, and it broke badly: when an install failed to create the tables, the agents pointed at ids that did not exist, and you could not fix it by making the tables yourself, because a new table gets new ids the script would never write to. Now a missing table is simply created on the next run.

The same rule gives you room to work:

  • Add columns and they are ignored.

  • Rename the title column and it is still used.

  • Delete a column the assistant needs and it is put back.

  • Delete a whole table and it is rebuilt, empty.

The one thing that will not survive is renaming a column the assistant depends on: it will treat that as missing and add a fresh one alongside. Rename freely, just expect a new Due or Status to appear next to yours.

What happens in Telegram

First it sends you a link to prove which Brain account you are. Approve it and the chat is bound to you, so a stranger who finds the bot gets nothing.

Then three questions, each skippable:

  1. Where are you? Send a city or a timezone. It maps "Manila", "PH", or "Asia/Manila" onto a real zone. If it cannot place what you sent it says so and asks again rather than guessing, because a wrong timezone books things at the wrong hour and nobody notices until someone misses a meeting.

  2. When should I check with you before something leaves Brain? Three buttons: only when other people are involved, always, or never.

  3. How much of your mail should I bring you? Three buttons: everything, only what looks important, or nothing.

Then it tells you what it can do and gets out of the way. /setup runs the questions again, /help reprints the summary.

Skipping every question is fine. The defaults are UTC, ask-only-when-others-are-involved, and tell-me-about-everything.

A warning about the checklist

The setup checklist tells you whether a connection exists, not whether it still works. A Google account whose access has expired shows a green tick and then fails at run time with "no Google account connected". If the calendar or the inbox misbehaves and the checklist looks clean, reconnect Google first.

This is a starting point, not a product

The tables, their columns, and the doc sections are a skeleton you are expected to change. The assistant reads and writes the whole workspace, so it works with whatever is actually there rather than only what shipped. It is told explicitly never to refuse something on the grounds that it is not in the starting setup, and never to push a way of working on you.

To add a setting, add a column to PA Config. To change how it behaves, edit the memory doc.

Settings

Open Assistant Memory. At the top is PA Config, one row, every setting a dropdown. The assistant re-reads it on every message.

Setting

What it does

Timezone

The clock it thinks in. 26 common zones.

Working hours

The window it proposes meetings inside. "No fixed hours" means any time.

Ask before acting outside Brain

When it stops to check. "Only when other people are involved" is the default: booking yourself is instant, inviting someone else asks first.

Email triage

How chatty it is about new mail.

Reply length

Short, normal or detailed.

A blank cell falls back to a safe default. An unrecognised timezone falls back to UTC and says so. The assistant never changes a setting on its own: tell it "I've moved to Tokyo" and it offers, it does not act.

What it does

Telegram is where you talk to it. Text, voice notes and photos all work. It remembers the last 20 turns, and anything durable goes into the memory doc.

Email starts conversations, it never acts on its own. Mail arriving in the connected inbox gets read and, if it implies something, you get a message asking about it. Your answer three minutes later still knows what "it" was, because the proposal is parked where both agents can see it.

The calendar is real. List, create, edit and cancel in Google Calendar. Every event it creates is mirrored into PA Events with its Google id, so it can edit and cancel what it made rather than only ever adding. A cancelled event keeps its row, marked Cancelled.

The one rule about writing

Changes inside Brain happen immediately, because they are cheap to undo. Anything that leaves the system follows your "Ask before acting outside Brain" setting, enforced in the tools themselves rather than left to the model's judgement.

Memory

Below the settings table: About me, Standing preferences, Open threads, Decisions and facts, Do not do.

It reads the whole doc every turn and rewrites a section when something changes, rather than appending. Every correction you give it lands in "Do not do", so you teach it what to ignore by telling it off in Telegram.

The settings table sits above the first heading, and everything above that line is preserved untouched when the assistant rewrites its own memory.

What is inside

  • Assistant — the Telegram bot. Claude Opus 5, webhook trigger, per-chat serialised so a burst cannot race itself. Owns provisioning.

  • Inbox Watcher — polls the connected inbox every two minutes. Claude Haiku 4.5, since it only classifies.

  • PA Config — the one-row settings table.

  • PA People / PA Tasks / PA Events — the CRM spine.

  • Assistant Memory — settings and long-term memory in one doc.