Skip to main content

Getting Started

Coeffection is a configurable CRM. It ships with sensible defaults, but the real value comes from shaping it around how your business actually works. This guide walks you through that, start to finish: think first, model your business, then turn it on. Work through it in order and by the end you'll have real records moving through a pipeline you designed.

How to use this guide#

The order here is deliberate. A lot of CRM projects stall because people start clicking before they've decided what they're building. So the first part is homework you do away from the software. Then you configure, then you connect the tools your team already lives in. Here's the path:

  • โ€ขPart 1: Homework first. Map your process, name your entities, and decide how they relate. No software yet.
  • โ€ขPart 2: Entity configuration. Build those entities and pick the right field type for every piece of data.
  • โ€ขPart 3: Which entities have a journey. Add pipelines, stages, gates, promotions, and SLAs to the ones that move.
  • โ€ขPart 4: Integrations. Connect Google, your first and most useful integration.
  • โ€ขPart 5: Communication. Calendar sync and the inbox that ties email to records.
  • โ€ขPart 6: Lead inbox. Load real lead data from Airtable and start working it.
โ„น
You don't have to get everything perfect on the first pass. Entities, fields, and stages are all editable later. The goal of this guide is a working end-to-end setup you can refine, not a finished one.

Part 1: Homework first#

Do this part before you touch the software. A whiteboard, a doc, or a napkin is fine. The point is to decide what you're modelling so that when you do start configuring, you're transcribing a plan instead of inventing one field at a time.

1. Map your business process end to end

Start with the whole journey, from the very first moment a potential customer shows up to the moment the work is done and paid for. Write it as a single line of steps, in plain language, the way your team actually talks about it. Don't worry about the CRM yet. You're just describing reality.

Example: a sign-manufacturing business

A form fill comes in โ†’ someone qualifies it โ†’ a rep works the deal โ†’ the deal is won โ†’ a project is scheduled and built โ†’ it's installed โ†’ the customer is invoiced.

Now mark the moments where a thing changes hands or changes character. In the example above, an incoming enquiry, a live deal, and a build-it-and-install-it project are three genuinely different things with different owners, different fields, and different definitions of "done." Those hand-off points are the seams you'll cut along in the next step.

โ„น
If two steps have the same owner, the same fields, and the same idea of "finished," they probably belong to the same entity. If any of those three differ, that's a seam.

2. Break your process into entities

An entity is a type of record you track. Contacts and Opportunities are built in, but Coeffection lets you define your own, so your entities can match your business exactly instead of forcing your business to match the CRM. Take the seams you found and turn each stretch between them into an entity.

For the sign business, the process above breaks cleanly into three record types that each move through their own life:

  • โ€ขLead:a raw enquiry that hasn't been qualified yet. Lightweight, high volume, mostly triage.
  • โ€ขOpportunity: a real deal a rep is actively working, with a value and an expected close date.
  • โ€ขProject: the work itself once the deal is won. Design, fabrication, install.

Your business will have its own set. A consultancy might have Lead, Engagement, and Deliverable. A property manager might have Enquiry, Application, and Tenancy. The names matter less than the principle: one entity per genuinely distinct kind of record. Resist the urge to cram everything onto one giant "Deal" record with fifty fields, half of which are blank at any given time.

โš 
A common trap is making an entity for something that's really just a field. A deal's "priority" or "source" isn't an entity, it's a select field on the Opportunity. Ask whether the thing has its own life and its own record. If it doesn't, it's a field.

3. Map your customer side

The entities above are the work moving through your business. Running alongside them are the people and organisations that work belongs to. These usually don't move through a pipeline; they're the stable records everything else points at. Sketch out which of these you need:

  • โ€ขCompany(also called an Account): the organisation you're doing business with.
  • โ€ขContact: an individual person, such as a buyer, an influencer, or a decision-maker.
  • โ€ขCompany Contacts:the fact that a Contact belongs to a Company. One company can have many contacts, and you'll want to see them all from the company record.
  • โ€ขVendorsor other third parties: suppliers, subcontractors, partners. If you need to track them, they're their own entity too.

The distinction that matters: your process entities (Lead, Opportunity, Project) have a beginning and an end, they move. Your customer-side entities (Company, Contact, Vendor) tend to persist. A company stays a company. This difference decides which entities get a pipeline in Part 3 and which are just records.

4. Decide how your entities relate to each other

You've got two lists now: the things that move, and the people those things belong to. The last piece of homework is drawing the lines between them. For every entity, ask: what is this record connected to, and is it connected to one of them or many?

Entity map: draw this before you build it

Company

record only

has many
โ†’

Contact

record only

Lead

has a pipeline

becomes
โ†’

Opportunity

has a pipeline

becomes
โ†’

Project

has a pipeline

Each Opportunity and Project links back up to its Company and Contact.

Note two different kinds of line in that sketch. Some are belongs-to links: an Opportunity belongs to a Company and a Contact. Others are becomeslinks: a Lead becomes an Opportunity, an Opportunity becomes a Project. Both are real, and Coeffection supports both, but they're built differently. Belongs-to links are relationship fields (Part 2). Becomes links are pipeline promotions (Part 3). Deciding which is which now saves you rework later.

โœ“
By the end of Part 1 you should have, on paper: a list of entities, a note next to each saying whether it moves through stages or is just a record, and lines showing what links to what. That sheet is your build plan for everything below.

Part 2: Entity configuration#

Now you transcribe the plan. Everything in this part happens under Admin โ†’ Entity Types, the master list of every kind of record your workspace can hold. You'll see the built-in entities there already; you're about to add your own.

5. Build the entities and decide their fields

Create one entity type per record type from your Part 1 list. Give each a clear, singular name (Lead, Opportunity, Project). Once an entity exists, open it and start adding fields. A field is one piece of data you want to capture on every record of that type.

  1. 1Go to Admin โ†’ Entity Types and click New entity type. Name it after one of your entities.
  2. 2Open the new entity and use its field editor to add fields one at a time. For each field, give it a name and pick a field type (covered next).
  3. 3Start with the handful of fields you can't work without. For an Opportunity that's usually a name, an amount, an expected close date, and an owner. You can add more any time.
  4. 4Repeat for every entity. Don't forget the customer-side ones (Company, Contact) if you're not using the built-ins as they are.
โ„น
Fewer fields, filled in reliably, beat many fields left blank. A field nobody populates is worse than no field, because it makes the record look incomplete and it clutters reports. Add fields when you feel their absence, not speculatively.

6. Field types and what each is for

The field type is the single most important choice you make about a field. It decides how the value is entered and validated, how it looks across the app, and, crucially, how it behaves in reports and filters. A money amount stored as plain text won't total on a dashboard. A date stored as text won't sort. Pick the type that matches the real shape of the data, every time.

6a. The basic fields

These hold a value directly on the record. Most of your fields will be these, and the rule is simple: match the type to the data.

Basic field types
Field typeReach for it when
Text / Long Text / Rich TextFree-form words. Use Text for short labels, Long Text for notes, and Rich Text when you need formatting like bold, lists, and links.
Number / Currency / PercentAnything you'll do math on. Currency carries a currency symbol and totals correctly; Percentrenders as a percentage. Don't put money in a Text field.
Date / Date & Time / TimestampCalendar values that sort and filter by range. Use Date for a day and Date & Time when the hour matters.
Auto DateA read-only date the app stamps automatically when a record's status changes into a value you configure. Perfect for "Date Won" or "Date Closed" without anyone keying it in.
BooleanA simple yes/no toggle. Contract signed? On hold?
Select / Multi-SelectA fixed set of options. Use Select for one choice (a priority, a source) and Multi-Select for several (tags, product interests). Always prefer this over free text for known options, so filters and reports group cleanly.
Email / Phone / URLContact details with the right input behaviour and click-to-act handling built in.
Address / Country / State / PostalLocation data broken into typed pieces so you can filter and group by region instead of parsing one text blob.
ImageA picture attached to the record, such as a site photo or a product shot.

6b. The powerful fields

These are where a configurable CRM earns its keep. Instead of storing a plain value, they connect records to each other and let data flow between them. Reach for these when a field's value is really "another record somewhere else" rather than a fact you type in. They're the difference between a spreadsheet with lookups you maintain by hand and a system that keeps itself in sync.

Powerful field types
Field typeReach for it when
RelationshipPoints at a record on another entity type instead of storing text. Set its Related Entity Type (any entity, or a system target like Team or User) and its Cardinality: One-to-One links a single record (a Contact's Company), One-to-Many links several (a project's tasks). Because it's a real link, every field on the linked record travels with it.
Fuzzy Match RelationshipA relationship that softens the matching on the way in. When you're linking records where the exact spelling isn't guaranteed, like importing rows where company names are typed slightly differently, this suggests likely matches instead of demanding an exact pick. It stays "staged" as text until someone confirms the match. Ideal for messy inbound data.
Relationship TableThe reverse view of a relationship. Put it on the record that gets pointed at, aim it back at the entity that points, and it automatically lists every record linking to this one. Add it to a Company to see all its Contacts, or to a Contact to see all its Opportunities. You enter the link once; both sides show it.
Inherited LookupPulls a value down from a linked parent record so you never retype it. It walks the record's parent relationship to a target entity type, then shows either that record's name or a specific target field you choose (even its pipeline stage or status). Show a Contact's Company region on the Contact, and it stays in sync when the company's region changes. Choose First match for a single value or List to collect from all matched parents; you can even coalesce across several sources in priority order.
CombinedMerges several fields already on the same record into one. Pick a rule: coalesce (first non-empty wins), newest or oldest (by timestamp), or concat (join them together). Handy for a single display name assembled from parts.
Link (any record)Like a relationship, but not tied to one target type. It can point at any record across every entity type, so use it for a loose "related to" link when you don't want to fix the target up front.

Alongside these, a few field types embed a whole panel onto the record rather than a single value: Comment Thread, Email Box, SMS History, Meetings, Dropbox File, Drive File, and Table. And Section Break and Tab Grouporganise a long record into readable sections and tabs. You'll use these to lay out a record once your fields are in place.

โ„น
The mental test for the powerful fields: if a value is really another record, use a Relationship (or Fuzzy Match if the data is messy). If it's a value that lives onanother record and you just want to see it here, use an Inherited Lookup. If it's the reverse list of who points at you, use a Relationship Table. Get these three right and your data stops drifting out of sync.
โš 
A company name typed into a plain Text field is just a string. Misspell it once and it silently stops matching everything else. The same company linked through a Relationship field is one real record, so its address, owner, and history all come along. When a value is really "a record somewhere else," don't store it as text.

Part 3: Which entities have a journey#

Back in Part 1 you marked which entities move and which just sit there as records. This part is about the ones that move. A record that moves gets a pipeline: an ordered set of stages it travels through on its way to done.

7. Entity pipelines

Not every entity needs a pipeline. A Company doesn't have stages; it's a stable record you point other things at. An Opportunity absolutely does: it goes from Qualified to Proposal to Negotiation to Won. That's the line. If an entity has a life with a beginning and an end and distinct phases in between, give it a pipeline. If it's a reference record, leave it as records only. Under the hood an entity type simply has a pipeline attached or it doesn't; attaching one is what turns on stage tracking and the kanban board.

Pipelines are managed under Admin โ†’ Pipelines, separately from entities, because one entity can support more than one pipeline (different sales motions for different product lines, for example). The setup is: create the pipeline, add its stages in order, then attach it to the entity so every record of that type carries a stage.

  1. 1Under Admin โ†’ Pipelines, click New pipeline and name it (for example, Deals Pipeline).
  2. 2Add stages in the order a record travels them. A simple start: New โ†’ Qualified โ†’ Proposal Sent โ†’ Won, with a Lost stage off to the side.
  3. 3Open the entity type's settings and set this pipeline as its pipeline. Now every record of that entity gets a stage and a kanban column.
  4. 4Create a test record. It lands in the first stage automatically. Drag its card to the next column, or change the stage on the record itself. Either way the move is logged with who moved it and when.
โ„น
The order you add stages in is the order they appear as columns on the board, and it drives each stage's default win probability. Drag to reorder any time. Nothing about a pipeline is permanent.

8. Pipeline stages, gates, promotion, SLAs, and stage automation

A pipeline is more than columns. Each stage can carry rules and behaviour that keep records honest and move work along without anyone babysitting it. Here's what you can layer on, in the order you'll usually want them.

Pipeline Editor: a stage with a gate and an SLA

Qualified

25%

โ†’

Proposal

50%

Hard gateSLA 48h
โ†’

Negotiation

80%

โ†’

Won

100%

Promotes to Project

Stage gates

A gate is a condition a record has to satisfy before it's allowed into a stage. Gates come in two strengths. A soft gate (a warning) lets the person moving the record proceed after acknowledging it. A hard gate blocks the move until the condition is met. The most common kind is a field-rule gate: it checks a field on the record, for example, an amount must be set (or over a threshold) before a deal can reach Proposal. There are also cross-branch gates that hold a record until a parallel branch has caught up. Admins can name specific roles that are allowed to override a gate, and every override and every skipped rule is written to the audit log, so nothing slips through quietly.

Promotion

Promotion is how a record in one pipeline hands off to a record in another. It's the "becomes" link from Part 1: a won Opportunity becomes a Project, a qualified Lead becomes a Deal. You attach a promotion rule to a stage. When a record reaches that stage, the rule creates a linked record of a different entity type and carries over the fields you map.

  • โ€ขPromote to picks the entity type the new record is created as, and Landing Stagesets where in that entity's pipeline it starts (defaulting to the first stage).
  • โ€ขConfigure Mapping chooses which source fields copy onto the new record. The account, contact, and owner come along automatically; everything else you map explicitly.
  • โ€ขTrigger Mode is either Confirm (a review dialog opens first, the safe default) or Automatic (the new record is created the instant the stage is reached).
  • โ€ขThe two records stay linked both ways. The original isn't deleted, it keeps a pointer to what it became, and the new record keeps a pointer back. A Revert option undoes a promotion done by mistake.

SLAs

A stage can carry an SLA target: a time budget for how long a record should sit in that stage. You set the target and a warning threshold (a record turns amber at, say, 80% of the budget), and records approaching or past the limit get flagged, so a deal parked in Negotiation for three weeks doesn't quietly rot. If you set business hours on the pipeline, the SLA clock only runs during them. SLAs turn "we should follow up" into something the system surfaces for you.

Stage automation

Reaching a stage can set things in motion on its own. An Auto Datefield stamps a timestamp automatically when a record's status transitions (a clean, hands-off "Date Won"). A promotion rule set to Automatic fires the moment the stage is reached. And stage changes are recorded on the record's history so you always have the trail. Start simple: get records moving through stages first, then add gates, then promotion and SLAs once the basic flow feels right.

โœ“
A good rule of thumb: gates keep bad data from advancing, SLAs keep good deals from stalling, and promotion moves finished work into the next team's pipeline without anyone rekeying it.

Part 4: Integrations#

Your data model is built. Now connect the tools your team already uses so the CRM reflects real activity instead of asking people to log it by hand. Integrations live under Admin โ†’ Integrations. There are many, but there's a clear one to do first.

9. Your first integration: Google

Google is the highest-leverage integration for most teams, because it brings email and calendar, the two places your customer conversations actually happen, straight onto your records. Connecting it means incoming email lands on the right contact's timeline automatically, outbound email sends from your real Gmail address so recipients see your name, calendar events sync both ways, and you can attach Google Drive files to any record. There are two ways to connect it.

Personal Connection (fastest)

Each user connects their own Google account with a single OAuth approval. Best for solo users and small teams.

  1. 1Go to Admin โ†’ Integrations and open the Google (Gmail & Calendar) card.
  2. 2Click Connect My Account and sign in through the Google popup with your work email.
  3. 3Review the requested permissions (read and send email, manage calendar events, view your email address) and click Allow.
  4. 4Sync starts immediately. Existing emails that match your CRM contacts backfill onto their timelines.

Organization Connection (recommended for teams of 5+)

An admin connects once using Google Workspace Domain-Wide Delegation, and every user in the domain is synced automatically, with no per-person OAuth flow. New employees are connected the moment they're added to the Workspace domain. It takes a bit more setup (a Google Cloud service account and a scope grant in the Google Admin Console), and the full walkthrough is on the Google integration page.

โ„น
You can mix both modes. An organization connection can cover everyone while specific users still use a personal connection; the personal one takes priority for that user. If you're not sure, start with a personal connection for yourself, confirm email and calendar are syncing, then roll out the organization connection.
โœ“
To confirm it worked, open any contact you've emailed and scroll to the email section. You should see your recent threads with that person. Send a test message from the compose box and check it arrives from your own address.

Part 5: Communication#

With Google connected, the Communication Hub comes to life. This is the unified place where email, calendar, and (once you add Twilio or Zoom) calls and meetings all attach themselves to the right records. Two pieces are worth setting up deliberately.

10. Google Calendar

Calendar sync is bidirectional. Create an event in Google and it shows up in Coeffection; create one in Coeffection and it appears in Google. When you schedule a meeting from the CRM, a Google Meet link is generated automatically and included on the invite. Because events are tied to the contacts on them, a meeting you book with a prospect lands on that prospect's record without any extra step.

  • โ€ขEvents sync in real time in both directions, so you can live in whichever calendar you prefer.
  • โ€ขScheduling from a contact or opportunity attaches the meeting to that record automatically.
  • โ€ขGoogle Meet links are auto-generated for events created in the CRM.
โ„น
If calendar events aren't appearing, the usual cause is a missing scope or a disabled Calendar API on the Google side. The troubleshooting section of the Google integration page walks through the fix.

11. The inbox, and relating email to records

The Communication Hub inbox is a unified view of every interaction: email, and, once connected, calls, SMS, and meetings, each one logged against the relevant contact, company, opportunity, or case. The point is that nobody copies an email into the CRM by hand. It's already there.

Email attaches to records in two ways. The first is automatic contact matching: when an email syncs in, Coeffection matches it to a CRM contact by email address and shows it on that contact's timeline. Replies are grouped into conversation threads. That covers the common case with zero effort.

The second is manual linking, for when a conversation belongs to more than a contact. Open a thread and link it to any record: a specific opportunity, a project, a case. The link is applied to the whole thread, past and future messages included, so once you've tied a conversation to a deal, every reply on it shows up there too. One email can link to several records at once, and each record shows the conversations attached to it.

Communications: Inbox
Email

Marco Polo

9:15 AM

Re: TechBridge contract, attached

Meeting

Alice Ng ยท Google Meet

Yesterday

FluxCorp kickoff, linked to the Project

Email

David Park

Yesterday

Question about pricing

โš 
Automatic contact matching keys off the email address. If an email lands on the wrong timeline or nowhere at all, it's almost always because the contact's email address in the CRM doesn't match the address on the message. Keep contact emails accurate and matching stays accurate.

Part 6: Lead inbox#

You have a model, pipelines, and communication wired up. The last step is getting real data in. Most teams already have leads sitting somewhere, and Airtable is one of the most common places. Coeffection brings those Airtable rows into the Lead Inbox, a review queue that sits in front of your pipeline so raw leads get a human glance before they become real CRM records.

Here's the important part: the inbox reads your Airtable base live. Rows don't become CRM records just by appearing there. They become records only when you promote them, and a promotion carries over only the fields you mapped, not the whole raw row. That review step keeps junk out of your pipeline and lets you sanity-check the mapping on real data before you trust it.

Connect Airtable

You connect Airtable once, then point the inbox at a base and table. The exact screens and token scopes are on the Airtable integration page; the essentials are:

  1. 1In Airtable, create a Personal Access Token (or use OAuth) with read access to the base you want to import, then connect it in Coeffection under Admin โ†’ Integrations.
  2. 2Pick the base and the table to read from. Optionally choose a specific Airtable view so only the records visible in that view show up, an easy way to exclude archived or draft rows.
  3. 3Set up the field mapping: match Airtable columns to lead fields. This mapping is what decides which data lands on a promoted lead, and it can apply small transforms (trim, uppercase, date formatting) along the way.

Work the inbox

Lead Inbox

Rita Morales

Cloudify

AirtablePromoteReject

James Obi

DataVault

AirtablePromoteReject

Marco Polo

TechBridge

AirtablePromoteReject
  1. 1Open Lead Inbox from the Leads area. Each row is an Airtable record showing the fields you chose to display, and rows already imported are filtered out so you never see them twice.
  2. 2Review a row and click Promoteto turn it into a lead record. Only mapped fields carry over, and the lead's name is derived for you so you never get a blank-titled lead.
  3. 3Not a real lead? Reject it with a reason, or Snooze it to deal with later. Rejected rows stay out of your pipeline and you keep a record of why.
  4. 4Promoted rows move to the inbox's Promoted view, and the new lead enters the pipeline you built in Part 3, ready to work.
โ„น
Access to the Lead Inbox is permission-controlled, so you can let a triage team promote and reject without giving them the run of the whole CRM. If someone can't see the inbox, check their role's lead inbox permission under Admin.

Airtable isn't the only way in. The same inbox-and-promote pattern backs other lead sources, and if you want to push events from a webhook (Stripe, Typeform, or anything that can sign a request), see Inbound Sources. For a one-off spreadsheet, the CSV importer on any entity list works too. However the data arrives, the principle holds: review it, then let it into your pipeline.

You're ready#

That's the whole setup. If you worked through it in order, you now have every piece you need to run real work through Coeffection:

  • โ€ขA process you mapped out, broken into entities that match how your business actually works.
  • โ€ขThe right field type on every field, including relationships and inherited lookups that keep your data in sync instead of drifting apart.
  • โ€ขPipelines on the entities that move, with stages, gates, promotion, and SLAs doing the routine work for you.
  • โ€ขGoogle connected, so email and calendar attach themselves to the right records automatically.
  • โ€ขReal leads flowing through the Lead Inbox and into your pipeline.

From here it's refinement, not construction. Add a field when you feel its absence, tighten a gate when bad data sneaks through, connect another integration when a new channel matters. But the foundation is in place, and you can start moving real records through the pipeline you designed. That's the whole point. Go work a deal.

โœ“
Want to go deeper on any single piece? The sidebar has focused pages for pipelines, contacts and companies, the communication hub, and every integration. And the step-by-step guides walk through building an entity, a pipeline, and a promotion from scratch.