Activities
Notes at /notes, Calls at /calls, and CRM Emails at /crm-emails are one model with three lenses: the same activity list surface showing notes, logged calls, and tracked emails against the CRM records they concern. Pick the lens that matches what happened; the record underneath is shared.
The shared model
Section titled “The shared model”Every activity is a timestamped note on a relationship: what was said, decided, or sent, attached to the contact, company, or deal it concerns. The three surfaces share list chrome — the type lens is the only thing that changes.
- The All Notes tab sits above the table (note, status, body, owner, occurred, last modified); search, sort, columns, and filters narrow the rows, and New Note adds a row.
- This tenant holds no notes yet, so the table reads No notes found — the empty state is the honest capture, not a missing surface.

- The All Calls tab sits above the table (call, status, direction, recipient, outcome, owner, queued, duration); search, sort, columns, and filters narrow the rows, and New Call adds a row.
- This tenant holds no logged calls yet, so the table reads No calls found — the empty state is the honest capture.

- The All Emails tab sits above the table (subject, status, direction, from, to, owner, sent, last modified); search, sort, columns, and filters narrow the rows, and New Email adds a row.
- This is the correspondence log at
/crm-emails, not the template directory — outbound mail renders from templates at Email Templates (/emails). This tenant holds no tracked emails yet, so the table reads No CRM emails found.

- Notes: written observations pinned to the record — the lightest lens, for anything worth remembering.
- Calls: logged phone contact — who was reached, what was covered, what follows.
- CRM Emails: tracked email threads against the record — the correspondence half of the relationship.
Attachments are junctions, not work items
Section titled “Attachments are junctions, not work items”Activities attach to CRM records through contact, company, and deal junctions — the activity names the relationship it belongs to. They do not attach to work items: project tracking lives on the Work items hub, and an activity pointing at a task is a record in the wrong system.
- The detail names its relationship in the open: source (Manual Log), owner, and body beside a Relationships card carrying the ALYKAS TECH LLC company junction.
- This is what an attached activity looks like from the record side — the same junction that puts the note on the company timeline.

- Creation names the relationship up front: title, occurred, owner, and body above Relationships pickers for contact, company, and deal; Create Note files the note onto each picked record’s timeline.

- Log the activity where the relationship lives. A call about a deal belongs on the deal; a note about a person belongs on the contact.
- A missing junction is a follow-up, not a filing choice. Unattached activity cannot surface on any timeline — attach before closing the tab.
Timelines
Section titled “Timelines”Each CRM record carries its timeline: the activities attached to it in chronological order. Open the company or contact and the history reads itself — every note, call, and email in one place.
- The company record reads its own history: lifecycle stage and engagement cards above the Activity feed, with contacts, deals, and projects riding the right rail.
- The feed here holds two transcribed meetings (Discovery Call, Office Hours Promo Check In) with transcript links — meetings surface on the timeline; what was said lives at Meetings.

- The contact record filters its timeline by type: All, Calls, Notes, Emails, Record Updates. This contact has no attached activity yet, so the tab reads No activity yet — the empty state is the honest capture.
- The right rail still names the relationship: company and open deal ride alongside even when the feed is empty.

- Companies: the organization timeline behind each client.
- Contacts: the person timeline behind each relationship.
- Sales deals: the deal timeline behind each pipeline row.
HubSpot import
Section titled “HubSpot import”CRM history does not start the day the tenant does. Existing notes, calls, and emails arrive through the HubSpot import: the registered adapter, package, bindings, and authorized sync are worked end to end in the HubSpot e2e example, and the installs behind it live under Connectors.
Not this surface
Section titled “Not this surface”- Events: calendar-synced entries — scheduling data, not relationship history. Separate page, separate model.
- Meetings: AI-transcribed meeting records — adjacent, but their own surface.
- Email Templates: the template directory at
/emailsthat outbound mail renders from — not the correspondence log. This hub’s email lens is CRM Emails at/crm-emails.
What next
Section titled “What next”- Notes: the written-observation lens at
/notes. - Calls: the logged-call lens at
/calls. - CRM Emails: the tracked-email lens at
/crm-emails. - Events: calendar sync, kept separate from activities.
- Companies: the organizations activities attach to.
- Contacts: the people activities attach to.
- Sales deals: the pipeline rows activities attach to.
- Connectors: the installs behind CRM sync.

