CRM & Pipeline
The entry point of the operational loop. Track every client relationship, move deals through your pipeline, and convert a won deal into a fully funded project in one click — no copy-paste, no duplicate data entry.
What CRM Does
- Contacts — companies and people you work with or want to work with
- Deals — potential projects with value, timeline, and pipeline stage
- Pipeline — visual Kanban view of where every deal stands
- Activities — calls, meetings, notes, and emails logged against deals and contacts
- Services — rate card items that feed into deal line items and eventually invoices
- Proposals — formal versioned quote documents sent to clients
- Pipeline Analytics — conversion rates, deal velocity, and win rate by source
CRM is intentionally not a full-featured marketing or outreach tool. It does not send email campaigns, automate follow-up sequences, or score leads algorithmically. It focuses on one job: getting a deal to Won status so it can become a project.
Contacts
Contacts represent the people and companies you do business with. There are two contact types:
| Type | Represents | Notes |
|---|---|---|
| Company | A client organization | Can have people linked to it |
| Person | An individual at a company | Can be linked to a parent company |
Creating a contact
Go to CRM → Contacts
Click New Contact. Select the type (Company or Person).
Fill in the core details
For companies: name, website, industry, address. For people: first/last name, email, phone, job title, and optionally their employer company.
Add tags
Tags are free-form strings (e.g. 'retainer', 'priority', 'agency'). They are searchable and help filter your contact list.
Save
The contact is created. You can now create deals linked to this contact.
Deleting a contact
Click the trash icon on any contact row to delete it. A confirmation dialog appears before anything is removed.
You cannot delete a contact that has active (open or on-hold) deals linked to it. ACOS will block the deletion and show you the deals that need to be closed or deleted first. Won and lost deals do not block deletion.
Deleting a deal
Click the trash icon on any deal row in the deals list to delete it. A confirmation dialog appears. Deleting a deal also removes all its activities and line items. This action cannot be undone.
Importing Contacts and Deals
If you have existing contact or deal data in a spreadsheet, you can bulk-import it instead of creating records one by one. Go to Settings → Import Data.
CSV format
| Field | Contacts CSV | Deals CSV |
|---|---|---|
| name / title | Required — company or person name | Required — becomes the deal title |
| Optional (used for dedup) | — | |
| type | company or person | — |
| company | Optional — name of parent company | — |
| contact_email | — | Matches to existing contact by email |
| stage_name | — | Must match an existing pipeline stage name |
| value | — | Numeric, e.g. 12000 |
| expected_close_date | — | YYYY-MM-DD format |
Download a sample CSV from the import page to see the exact column names and example rows before preparing your own file.
Duplicate detection
ACOS skips rows that would create duplicates. For contacts, a row is skipped if a contact with the same email already exists (or the same name, if the row has no email). For deals, a row is skipped if a deal with the same title and same linked contact already exists. The import result screen shows exactly how many rows were created, skipped, and failed.
After import
Imported contacts and deals appear immediately in your CRM. No migration, no approval step. You can edit or delete any imported record the same way you would a manually created one.
Pipeline
The pipeline is a Kanban board with one column per stage. Your stages are defined in Settings → Pipeline.
Default pipeline stages
Lead
First contact or inbound inquiry
Qualified
Confirmed budget and intent
Proposal
Formal proposal sent
Negotiation
Terms being discussed
Closed Won
Deal accepted — triggers conversion
Closed Lost
Deal declined or abandoned
Moving deals between stages
Drag a deal card from one column to another. The move is optimistic — the card moves immediately in the UI and the PATCH request runs in the background. If the request fails, the card returns to its previous position and you'll see an error toast.
Won and Lost stages
When you drag a deal into the Won stage, ACOS automatically sets deal.status = "won" and records actual_close_date = today. A Convert to Project button appears on the deal detail. Similarly, dragging to Lost sets status to "lost".
Kanban vs Table view
The deals list has a toggle to switch between the Kanban board and a sortable flat table. The table view shows: title, value, stage, owner, expected close date, and created date. Both views support filtering by stage, status, owner, and date range.
Deals
Creating a deal
Click New Deal from the pipeline board or deals list
The deal form opens.
Set core fields
Title (becomes the project name on conversion), contact (who you're selling to), deal value, currency, probability (0–100%), and expected close date.
Add line items (optional but recommended)
Pull from your service rate card. Each line item has a service name, quantity, unit rate, and total. The sum of line items should match (or inform) your deal value.
Assign an owner
The person responsible for closing this deal. Defaults to the creator.
Save
The deal appears in the pipeline at the stage you chose.
Deal statuses
| Status | Meaning | Set by |
|---|---|---|
| open | In progress — still being worked | Default on creation |
| won | Accepted — ready for conversion | Auto-set when moved to Won stage |
| lost | Declined or abandoned | Auto-set when moved to Lost stage |
| on hold deal | Paused — client not ready yet | Manual update |
Logging activities
Every interaction with a deal or contact should be logged. Activity types:
- Note — internal comment or observation
- Call — phone or video call log
- Meeting — in-person or virtual meeting
- Email — outbound email record with subject and body
Activities appear in the deal's chronological activity feed and on the contact's timeline. The Smart Alerts system uses activity recency to detect stale deals — if no activity is logged for 14 days on an open deal, you'll get a Stale Deal alert on the Dashboard.
The Critical Action: Converting a Deal to a Project
This is the most important action in the operational loop. It closes the gap between "we won the deal" and "we have a project to work on" — removing the manual re-entry of client, budget, and scope that loses information and wastes time.
How conversion works
Move the deal to the Won stage
The deal status becomes 'won' and the Convert to Project button appears on the deal detail page.
Click Convert to Project
A preview modal appears showing the project that will be created: name (from deal title), client (from contact), and budget (from deal value).
Optionally rename the project
The deal title becomes the project name by default. You can change it before confirming — useful if the deal title is a shorthand but the project needs a formal name.
Confirm
ACOS creates the project in an atomic database transaction. If anything fails, neither the deal nor the project is modified.
Redirect
You are taken directly to the new project. The deal now shows a link to the project. The project's budget is set from the deal value.
A deal can only be converted once. If you try to convert a deal that was already converted, ACOS returns an error. If you need a second project from the same client, create a new deal.
What the project inherits from the deal
- Project name = deal title
- Contact (client) = deal contact
- Budget = deal value
- Currency = deal currency
- Deal reference = linked permanently on both records
Lead Scoring
Available on Growth and Scale plans. A nightly background task assigns every open deal an A/B/C/D grade based on three factors:
| Factor | Weight | High score = ? |
|---|---|---|
| Activity recency | 40% | Activity logged within last few days |
| Deal value vs. org average | 30% | Deal value above your average |
| Pipeline stage position | 30% | Deal is in a later stage |
Grades are distributed evenly: top 25% of deals get A, next 25% get B, and so on. The score badge appears on every DealCard. Use it to prioritize which deals to follow up on during the week.
Proposals
Proposals turn your deal's line items into a formal, branded PDF document you can send to the client. Available on Growth and Scale plans.
Open a deal with line items
Proposals require at least one line item.
Click Create Proposal
ACOS pre-fills the proposal from the deal's line items. You can add, edit, or remove items.
Preview and send
A PDF is generated in the background. Once ready, preview it in an inline iframe. Click Send to email it to the contact.
Track status
The proposal moves through: Draft → Sent → Accepted / Declined. Creating a new proposal version supersedes the previous one.
Only one proposal per deal can be in Sent or Accepted status at a time. If you need to revise and resend, create a new proposal version — this automatically archives the previous version.
Roles & Permissions
| Action | Member | Manager | Admin | Owner |
|---|---|---|---|---|
| View contacts and deals | ✓ | ✓ | ✓ | ✓ |
| Create/edit contacts | ✗ | ✓ | ✓ | ✓ |
| Create/edit deals | ✗ | ✓ | ✓ | ✓ |
| Delete contacts | ✗ | ✓ | ✓ | ✓ |
| Delete deals | ✗ | ✓ | ✓ | ✓ |
| Import contacts / deals via CSV | ✗ | ✓ | ✓ | ✓ |
| Convert deal to project | ✗ | ✓ | ✓ | ✓ |
| Manage pipeline stages | ✗ | ✗ | ✓ | ✓ |
| View pipeline analytics | ✗ | ✓ | ✓ | ✓ |
Best Practices
- Always link a deal to a contact before adding value. Deals without contacts don't have a client — making it impossible to generate an invoice later.
- Use deal line items even for rough estimates. The line items carry through to the project and give you a starting point for your rate card.
- Log an activity on every significant interaction — even a quick note. The Smart Alerts system relies on activity recency to detect stale deals.
- Set a realistic expected close date. This date drives the pipeline forecast in Reporting. Overdue close dates inflate your forecast.
- Don't create a new deal when re-engaging a client on a second project. Keep the won deal linked to the first project and create a new deal for the new engagement.
FAQ
Can I move a deal back to an earlier stage after it's been won?
Yes — you can edit the stage on a won deal to move it back to an open stage. This clears the won status. However, if the deal was already converted to a project, the project remains. The deal and project stay linked — you'll need to manually archive or delete the project if the conversion was a mistake.
Can I have multiple pipelines for different teams or services?
Multiple pipelines are available on Growth and Scale plans. Each pipeline has its own stage set. You can create as many pipelines as you need and switch between them in the CRM header.
What happens to the pipeline stages if I reorder them?
Stage reordering only affects the visual position in the Kanban board. Existing deals in those stages are not moved — they stay in their current stage. Only the display order changes.
Can I delete a pipeline stage that has deals in it?
No. You cannot delete a stage that contains active deals. Move or close all deals in that stage first. The Won and Lost stages can never be deleted regardless.
I accidentally converted a deal to a project. Can I undo it?
There is no automatic undo for deal conversion. The deal has converted_at set and the project was created. You can manually delete the project (it has no time entries or invoices yet if this just happened), but the deal's converted_at timestamp will remain. Contact support if you need help resolving a complex case.
My CSV import shows 0 created and all skipped — what happened?
The most likely cause is that the records already exist. ACOS deduplicates by email (contacts) or title + contact (deals). If you re-upload the same file, all rows will be skipped. If you changed data in the file but not the email or title, ACOS still considers them duplicates — delete the existing records first if you want to re-import clean data.
Can I delete multiple contacts or deals at once?
Not yet — bulk delete is not available in the current version. Delete records one at a time using the trash icon on each row.