Quickstart: Your First Memo
This is the shortest path from a folder of deal documents to a cited draft memo in Canvas. The primary way in is Slack; a web-chat alternative inside Canvas is covered at the end.
What you’ll need
Section titled “What you’ll need”- An offering memorandum (PDF) and an underwriting model (Excel
.xlsx/.xls). - Optionally, one or more CoStar market exports (PDF). CSV files are also accepted.
- A name for the deal.
Via Slack (primary path)
Section titled “Via Slack (primary path)”1. Go to the right channel
Section titled “1. Go to the right channel”Mention the bot and upload only in an approved channel. In production, the bot (@memobot) operates in #memosa-main and #initiative-memosa. If you upload somewhere it doesn’t listen, it quietly ignores the files — so make sure you’re in an allowed channel first.
2. Upload your documents
Section titled “2. Upload your documents”Attach your PDF, Excel model, and any CoStar reports to a message in the channel. You can drag them all in at once.
Memosa confirms what it received and tells you which document types it classified each file as (PDF, Excel, CoStar).
3. Name the deal
Section titled “3. Name the deal”If Memosa doesn’t already have a deal name, it asks for one. Reply in the thread with the deal’s name. Setting the name is also what creates the deal’s isolated evidence namespace — so this step matters.
4. Trigger generation
Section titled “4. Trigger generation”When the required documents and the deal name are all present, Memosa tells you you’re ready and asks you to start generation explicitly. Reply in the thread:
@memobot generateGeneration does not start automatically — you trigger it. This is deliberate: you stay in control of when the analysis run begins.
5. Watch it run, then open Canvas
Section titled “5. Watch it run, then open Canvas”Memosa processes the documents, then runs its multi-agent analysis. Document ingestion typically takes a few minutes; the full memo generation that follows is a longer run. When it finishes, your cited draft memo is waiting in Canvas, the web editor — that’s where you’ll edit, collaborate, and eventually approve and export.
Via Web Chat Intake (alternative)
Section titled “Via Web Chat Intake (alternative)”Prefer not to use Slack? Canvas has a guided intake flow that runs the identical pipeline.
- Start a conversation. Open the intake flow in Canvas. A new conversation is created for you.
- Upload documents. Drag in your PDF, Excel model, and any CoStar reports. Each file can be up to 50 MB , and accepted types are
.pdf,.xlsx,.xls, and.csv. You’ll see live progress as each file is validated and processed. - Confirm the deal name. Memosa often suggests one from your documents — accept it or type your own.
- Generate. Click generate (or send a message like
generate). A live progress stream shows the analysis as it runs, and you can reconnect without losing your place if your connection drops. - Open the memo. When generation completes, the finished memo opens in Canvas.
A note on active conversations
Section titled “A note on active conversations”The web-chat flow caps how many conversations you can have active at once — currently 15 per user. Finished deals (completed, errored, or cancelled) don’t count against this and are cleared automatically, so the cap only ever reflects deals genuinely in flight. If you hit it, complete or close an existing conversation to free a slot.
What to expect on timing
Section titled “What to expect on timing”Memosa generation is a substantive analysis run, not an instant response. As a rough mental model:
- Document processing (parsing, chunking, FormulaGraph) usually finishes in a few minutes.
- Memo generation (the multi-agent analysis and synthesis) runs longer — on the order of tens of minutes for a full memo.
Exact timing depends on the deal: how large the model is, how many documents you uploaded, and current load. Both paths give you live progress so you’re never guessing whether something is still running.
Next steps
Section titled “Next steps”Once your draft is in Canvas:
- The Canvas editor — find your way around.
- Editing and AI suggestions — refine the draft.
- Document lifecycle and the approval gate — how to approve and unlock exports.
Sources
Section titled “Sources”src/slack/handlers/file_handler.py—FILE_BATCH_DEBOUNCE_SECS = 3.0; the file-batch debounce buffer for simultaneous Slack uploads.src/slack/handlers/base_handler.py—is_channel_allowed(); channel allow-list enforcement.src/slack/handlers/mention_handler.py— the explicit@memobot generatetrigger and the “all required documents present” readiness prompt.src/services/intake_coordinator.py— readiness gating: PDF + Excel + deal name required; deal name creates the Pinecone namespace.src/canvas/services/web_intake_config.py—max_file_size_bytes(50 MB),allowed_extensions(.pdf/.xlsx/.xls/.csv),max_active_conversations(15), and the stale-reclaim thresholds.src/canvas/routes/web_chat_routes.py— the web intake endpoints (create conversation, upload files, set deal name, generate, SSE progress) and the per-user active-conversation cap surfaced asmax_active.src/canvas/services/web_intake_service.py— web conversation lifecycle, deal-name suggestion from document content, zombie-conversation reclamation.- Native memory
feedback_web_chat_has_excel.md— web-chat deals always include an Excel model, same as Slack.