Short answer: How to use the Aamu.app CRM template to track companies, contacts, deals, related work, activity, and API-driven database automations.
A small-team CRM needs to show who you are talking to, what was promised and who owns the next follow-up.
Aamu’s CRM template connects companies, contacts and deals to tasks, emails, meetings and Docs.
Use it as a starting point for a CRM you can adapt in Aamu Databases.
What the CRM template contains
The template starts with three connected tables:
Companies: accounts or organizations the team is talking to.
Contacts: people at those companies.
Deals: sales opportunities, renewals, pilots, or commercial conversations.
Those tables are connected with reference fields. A deal can point to a company and a primary contact. A contact can point to a company. That gives the CRM its basic structure without forcing everything into one huge table.
The template includes stage, value, probability, expected close date, next action, owner, tasks, emails, meetings, Docs and notes. You can change these fields to fit your process.
Why three tables instead of one
A one-table CRM is tempting because it feels easy at first. Every row is a lead. Put the company, contact, deal status, email, value, and notes into one place and keep moving.
That breaks down when the same company has multiple contacts, or one contact is involved in more than one opportunity, or a company has a current deal and a later renewal. Copying the same company and contact details across many rows creates stale data.
The Aamu template keeps the CRM normalized enough to be useful:
A company can have many contacts.
A company can have many deals.
A deal can have its own stage, value, owner, and follow-up work.
Contacts can stay attached to the company even when a specific deal is closed.
Start from companies, contacts, or deals
Different teams think about customer work from different angles. A sales team may start from deals. A founder-led team may start from companies. A support-heavy team may start from contacts and conversations.
Open a company and you can see the contacts and deals that reference it. Open a deal and you can see the company, the primary contact, and the related work. Open a contact and you can connect them back to the company and the sales conversation they belong to.
Related items make rows feel less flat
A database row is useful for structured fields, but a customer relationship is more than fields. It has emails, tasks, meetings, docs, and history.
In the CRM template, deal rows can connect to related Aamu items:
Tasks for follow-ups, reminders, research, proposals, and handoffs.
Emails for real customer conversations.
Meetings for calls, demos, onboarding sessions, and check-ins.
Docs for proposals, notes, account plans, onboarding docs, or implementation details.
Activity timeline gives the CRM memory
Small CRMs often fail quietly because nobody trusts whether the row is current. A stage might say "Proposal", but was that changed today, last month, or before the last customer call?
Aamu database rows now have an activity timeline. When a field changes, Aamu records what changed, who changed it, and when. That can be shown as a readable timeline from the row details.
For CRM use, this is especially useful for:
stage changes, such as "Qualified" to "Proposal";
owner changes when responsibility moves to another teammate;
task, email, meeting, and doc links being added;
reference changes, such as choosing a different company or primary contact;
value, probability, and expected close date updates.
The timeline records field changes without requiring a manually written changelog.
Last activity helps with follow-up
A CRM is only useful if it helps the team avoid losing momentum. One practical field is "last activity": when this company, contact, or deal was last touched.
In Aamu, this can be shown from database activity. Instead of maintaining a manual "last updated" note, the row can show the latest meaningful activity, such as a stage change, a linked task, or a related email being added.
That gives the team a simple review habit: sort or scan by last activity and look for deals that have gone quiet. For a small team, that can be more useful than a large sales dashboard.
Next action is still a human decision
CRM software often promises to tell the team what to do next. In practice, "next" is not always obvious from data alone. The right next action may depend on a customer promise, a product constraint, a pricing discussion, or a meeting that has not happened yet.
The Aamu template treats next action as something the team defines. A deal can have a next action field and a due date, but the strongest follow-up mechanism is usually a real task linked to the deal.
There is also a lighter database-level option. A timedate column can be configured with Column options set to Treat as due date, and a User column can be configured as Treat as assigned to. With those settings, the row itself can behave more like an actionable work item: it can appear for the assigned user as an upcoming or overdue infobox on the main page, and Aamu can create the related notifications.
That means a CRM row does not always need a separate task just to become visible in someone's daily flow. For lightweight follow-up, the deal row can carry its own owner and due date. For richer work, a linked task is still useful because it can have comments, attachments, reminders, and a more detailed workflow.
A simple workflow
A small team can use the template like this:
Create or select the company.
Add the main contact and reference the company.
Create a deal and connect it to the company and primary contact.
Set the stage, owner, value, probability, and expected close date.
Use the row's assigned-to and due-date fields when the deal itself should show up as upcoming or overdue work.
Add the next follow-up as a task.
Attach relevant emails, meetings, or docs as the relationship develops.
Use the row details and activity timeline to understand what has happened recently.
Automate CRM updates through the API
The CRM can also react to database changes. Aamu's Database automations API supports two useful triggers: row_inserted when a new row is created, and row_updated when a selected column changes to a selected value.
For example, a row_updated automation can create a handoff task when a deal's Stage column changes to Won. The task can take its title and body from columns in the deal row, assign selected project members, and map row values into task custom fields.
POST /api/v1/databases/CRM_DATABASE_ID/automations
x-api-key: YOUR_API_KEY
x-project-id: YOUR_PROJECT_ID
Content-Type: application/json
{
"name": "Create onboarding task for won deals",
"status": "public",
"trigger": {
"type": "row_updated",
"tableId": "DEALS_TABLE_ID",
"columnId": "STAGE_COLUMN_ID",
"value": "won"
},
"actions": [
{
"type": "create_task",
"pid": "YOUR_PROJECT_ID",
"users": ["OWNER_USER_ID"],
"dbFieldTitle": "DEAL_NAME_COLUMN_ID",
"dbFieldBody": "NEXT_ACTION_COLUMN_ID"
}
]
}The trigger value is the stored column value, which may differ from the label shown in the table. Use the database schema to get the table and column ids and the stored values for status choices.
row_inserted is useful earlier in the CRM flow. It can create a qualification task whenever a new deal or contact is added, whether the row comes from the Aamu UI, a published Form, an authenticated Form submission, or a GraphQL mutation.
{
"name": "Qualify new deals",
"status": "public",
"trigger": {
"type": "row_inserted",
"tableId": "DEALS_TABLE_ID"
},
"actions": [
{
"type": "create_task",
"pid": "YOUR_PROJECT_ID",
"users": ["SALES_OWNER_USER_ID"],
"dbFieldTitle": "DEAL_NAME_COLUMN_ID",
"dbFieldBody": "NOTES_COLUMN_ID"
}
]
}The same API can list, inspect, update, and delete automation definitions:
GET /api/v1/databases/CRM_DATABASE_ID/automations
GET /api/v1/automations/AUTOMATION_ID
PATCH /api/v1/automations/AUTOMATION_ID
DELETE /api/v1/automations/AUTOMATION_IDAutomation management uses the separate Automations API-key scope. A task action also needs Tasks write access to its target project; an email action needs Emails write access and an existing automation email template. Database rows themselves can be inserted and updated through Aamu's GraphQL API, and those mutations run the same automation triggers as changes made in the workspace.
The template covers a small-team CRM workflow. Check its limits against your sales process before adopting it.
If a team needs advanced territory management, complex sales forecasting, quoting, commission logic, deep marketing attribution, or a large marketplace of sales integrations, a dedicated CRM may still be the right tool.
