Step-by-step instructions
A manager can design a sales funnel, understand every lead field, move leads through stages, keep contact history, schedule the next action, and keep CRM data reliable for reports, campaigns, support, and future AI agents.
Use the interactive screenshot walkthrough first. Switch steps with the step dots, then read what to fill and why it matters.
Fields on this screen
Open CRM
How to fill: Open https://sabsus.flutterflow.app/crm and wait until pipelines and lead cards are loaded.
Why: The board needs both pipeline definitions and lead records before staff can work.
Choose a pipeline
How to fill: Select the pipeline that matches the sales process: catering, franchise, retail, services, support renewal, or another funnel.
Why: A lead in the wrong pipeline will follow the wrong statuses and reports.
Create a pipeline
How to fill: Click New pipeline, enter a multilingual name, and fill the description.
Why: The name tells staff where to put leads and what process they should follow.
Pipeline mode
How to fill: Choose manual assignment, automatic assignment, round-robin, call center, priority based, or AI assisted.
Why: This controls how responsibility is assigned.
Working window
How to fill: Set start date, start time, call window end time, and working days.
Why: Calls and follow-ups should happen during the allowed business window.
Manager list
How to fill: Select the managers who can own this pipeline.
Why: Assignment, filtering, and accountability depend on this list.
Goals and KPI
How to fill: Fill period, new leads target, revenue target, and closed deals target.
Why: This separates lead volume from real sales performance.
First stage
How to fill: Create the first stage and mark it as the entry stage.
Why: New leads need a predictable starting point.
Intermediate stages
How to fill: Add qualification, contacted, proposal, negotiation, or other steps that match the business.
Why: Stages should represent real actions, not decorative labels.
Completed stage
How to fill: Add won/completed and lost/canceled logic.
Why: Closed leads must stop appearing as active opportunities.
Stage color
How to fill: Pick a background and text color that remains readable.
Why: The board must be scannable without hiding text.
Stage checklist
How to fill: Add required items such as phone verified, need confirmed, budget collected, proposal sent, or decision maker identified.
Why: Checklists prevent moving leads forward without required information.
Stage script
How to fill: Attach a script with questions, objections, and recommended wording.
Why: Staff and AI agents can follow the same sales logic.
Stage deadline
How to fill: Set dateline minutes when the stage has an SLA.
Why: Overdue stages highlight where sales work is stuck.
Filter leads
How to fill: Use search and filter by deal name, ID, company, first name, last name, budget, source, industry, time zone, segment, priority, products, category, tags, and comment.
Why: Filtering keeps managers focused on the right leads.
Create a lead
How to fill: Click New lead only after searching for existing lead or customer duplicates.
Why: Duplicates split history, tasks, and conversion tracking.
Deal name
How to fill: Enter a short opportunity name such as Catering for Westwood Office.
Why: The board needs a readable deal label.
Company and budget
How to fill: Fill company, industry, budget, and currency.
Why: These fields drive revenue forecast and segmentation.
Contact person
How to fill: Fill first name, last name, position, phone, email, and optional messengers.
Why: A lead without a reachable contact cannot be worked.
Source
How to fill: Select source and source detail such as Website Funnel, Instagram DM, WhatsApp, call, email, or Demo Form ID.
Why: Source data explains which campaign or integration produced the lead.
Segment and priority
How to fill: Choose segment and priority such as Hot, Warm, Cold, New, Won, Low, Medium, or Urgent.
Why: Managers use these fields to decide next action order.
Products and categories
How to fill: Select products, subscription, or interest categories.
Why: The lead should connect to what the person actually wants to buy.
Consent
How to fill: Set consent date when permission to contact is known.
Why: Automated outreach and marketing depend on consent.
Tags and comment
How to fill: Add tags and internal comment with the business context.
Why: Tags help filtering; comment keeps context for humans and AI agents.
Open the lead card
How to fill: Click the lead card to review status, activity, contact details, internal info, tasks, and notes.
Why: The card is the operational workspace for the opportunity.
Change stage
How to fill: Use Change Stage or drag/select the stage when the lead advances.
Why: Every stage update writes to status history.
Assign owner
How to fill: Set or change the manager when responsibility changes.
Why: Unowned leads get forgotten.
Call and messages
How to fill: Use Call Now, chat, SMS, email, or messenger actions when contact data is present.
Why: Communication actions should be tied to the lead history.
Create a task
How to fill: Create a task, meeting, call, email, SMS, signature, delivery, or reminder with deadline and assignee.
Why: Every lead should have a next action.
Add notes
How to fill: Use Add Note for conversation summaries, objections, decisions, or next steps.
Why: Notes explain why the lead is in its current state.
Convert or close
How to fill: Convert to deal/order, mark won, canceled, or lost only after recording the final reason.
Why: Closed outcomes feed revenue reports and future AI learning.
Common mistakes
- Using CRM as only a customer list and never creating a real pipeline.
- Creating leads without selecting the correct pipeline.
- Leaving the default stage empty, so new leads have no clear entry point.
- Creating stages that do not represent real sales actions.
- Using colors with unreadable text on the stage board.
- Skipping source and source detail, which makes campaign ROI impossible to understand.
- Creating duplicate leads because the manager did not search by name, phone, email, or company first.
- Saving phone numbers without country code or contact type.
- Putting internal notes into customer-facing message templates.
- Leaving priority, segment, product interest, or budget empty for hot leads.
- Assigning a lead to a manager who is not in the pipeline manager list.
- Moving a lead to the next stage without completing the stage checklist.
- Calling or messaging outside the lead time zone or pipeline call window.
- Using automated outreach without consent data where consent is required.
- Creating tasks without deadline, assignee, or request type.
- Closing leads as won/lost without reason, note, or final status history.
- Letting stale leads remain active without follow-up or cancellation.
AI Agent Field Reference for implementation
This block is intentionally below the human instructions. It explains storage names and downstream dependencies for automation, support, and future AI agents.
| Field | Stored as | Purpose | Why it matters |
|---|---|---|---|
| CRM route | CrmWidget.routePath = /crm | Real SABSUS CRM board at https://sabsus.flutterflow.app/crm. | All lead work starts from the CRM board, not from the customer list or a generic sales mockup. |
| Pipeline ID | PipelineStruct.id / leads.pipelineId | Stable funnel identifier. | Every lead must belong to the correct pipeline so stage movement and reports are meaningful. |
| Pipeline name | PipelineStruct.name[] | Multilingual funnel name. | Managers need a readable name such as Retail Sales, Catering Leads, Franchise Sales, or Support Renewal. |
| Pipeline mode | PipelineStruct.mode | Assignment mode: manual, auto assign, round robin, call center, priority based, or AI assisted. | Mode controls how new leads are distributed to managers and agents. |
| Pipeline description | PipelineStruct.description | Human explanation of what this funnel is for. | Prevents staff from putting the wrong prospects into the wrong process. |
| Pipeline start date | PipelineStruct.dateStart | Date when the pipeline becomes active. | Useful for launch tracking, KPI periods, and campaign attribution. |
| Start time | PipelineStruct.startTime | Beginning of the working or call window. | Call center and follow-up automation should respect business hours. |
| Call window end time | PipelineStruct.endTime | End of the working or call window. | Prevents late outreach and helps agents schedule callbacks correctly. |
| Working days | PipelineStruct.weekdays | Days when this funnel is active. | Leads should not be treated as stale during non-working days if the business does not call then. |
| Manager list | PipelineStruct.manager_ids | Employees who can own leads in this pipeline. | Controls accountability, workload, and assignment logic. |
| Target period | PipelineStruct.target_period | Day, week, or month KPI period. | Reports need to compare leads and wins against the same period. |
| Target new leads | PipelineStruct.target_new_leads | Expected number of new leads. | Shows whether campaigns are producing enough opportunities. |
| Revenue target | PipelineStruct.target_revenue | Expected revenue from the funnel. | Helps prioritize high-value pipelines. |
| Closed deals target | PipelineStruct.target_wins | Expected number of won deals. | Lets managers compare conversion rate, not only lead volume. |
| First touch SLA | PipelineStruct.firstTouchMinutes | Maximum minutes before the first contact. | Fast first response is critical for web, WhatsApp, and call leads. |
| Follow-up SLA | PipelineStruct.followUpHours | Hours before next follow-up should happen. | Prevents leads from being forgotten after the first conversation. |
| Stale after days | PipelineStruct.staleAfterDays | Days before a lead is considered stale. | Supports cleanup, reactivation, and AI prioritization. |
| Custom pipeline fields | PipelineStruct.fields[] | Extra fields required by this pipeline. | Different businesses may need property size, event date, company size, contract term, or product family. |
| Stage ID | PipelineStatusStruct.id | Stable status/stage identifier. | Lead history records store stage IDs, so changing names later should not break history. |
| Stage name | PipelineStatusStruct.name[] | Multilingual stage label. | Shown on the board and inside lead cards. |
| Stage type | PipelineStatusStruct.type | First, intermediate, or completed stage. | SABSUS needs to know where the funnel starts and when a lead is closed. |
| Default stage | PipelineStruct.defolt | Stage used for new leads. | New leads should enter the funnel consistently. |
| Stage description | PipelineStatusStruct.comment[] | Explanation of what this stage means. | Managers and AI agents can explain why a lead is in this stage. |
| Stage color | PipelineStatusStruct.color / colorText | Visual stage colors. | Makes the board easier to scan and reduces stage mistakes. |
| Stage checklist | PipelineStatusStruct.checklist[] | Required tasks before moving forward. | Ensures staff collect required data before qualification, proposal, or closing. |
| Stage deadline | PipelineStatusStruct.dateline_min | Expected time limit for the stage. | Supports overdue lead detection and team coaching. |
| Trigger flow | PipelineStatusStruct.flow | Automation flow called when the stage is used. | Can notify managers, trigger campaigns, create tasks, or update external systems. |
| Stage scripts | PipelineStatusStruct.scripts[] | Sales scripts attached to the stage. | Call center staff and AI agents use scripts to keep conversations consistent. |
| Message templates | PipelineStruct.messageTemplates[] | Reusable messages for outreach. | Reduces manual typing and keeps tone consistent across WhatsApp, email, SMS, or integrations. |
| Training materials | PipelineStruct.trainingMaterials[] | Guides or materials for sales staff. | Helps onboard managers and gives AI agents reference context. |
| Lead ID | LeadsStruct.id / LeadsRecord.reference.id | Stable lead identifier. | Needed for tasks, campaign links, notes, webhook events, and audit history. |
| Deal name | LeadsStruct.name_lid | Short name of the opportunity. | The board uses it to identify the deal quickly. |
| Lead date | LeadsStruct.date | Creation or lead date. | Used for filters, SLA, stale logic, and reports. |
| Customer ID | LeadsStruct.customerId | Linked customer profile if the person already exists. | Prevents duplicate CRM/customer data and connects orders and loyalty history. |
| First name | LeadsStruct.name | Contact first name. | Used for calls, messages, search, and personalization. |
| Last name | LeadsStruct.lastName | Contact last name. | Helps identify people with the same first name. |
| Contact position | LeadsStruct.posicion | Role of the contact person. | A CEO, manager, buyer, or assistant may require different sales handling. |
| Contacts | LeadsStruct.contacts[] | Phone, email, messenger, or other contact values. | Search, calls, SMS, email, WhatsApp, and integrations depend on clean contact data. |
| Address | LeadsStruct.address | Lead location or service address. | Useful for delivery, service area, local taxes, appointments, and territory assignment. |
| Company | LeadsStruct.company | Prospect company name. | B2B sales needs company context separate from contact name. |
| Source | LeadsStruct.source | Where the lead came from: web, call, Instagram, WhatsApp, email, etc. | Campaign ROI and automation depend on source quality. |
| Source detail | LeadsStruct.sourceDetail | Specific form, campaign, account, ad, or integration detail. | Explains exactly which campaign or channel produced the lead. |
| Manager | LeadsStruct.manager | Responsible employee. | Controls accountability and next action ownership. |
| Priority | LeadsStruct.priority | Hot, warm, cold, low, medium, urgent, or similar. | Helps managers decide who to contact first. |
| Segment | LeadsStruct.segment | Lead group or classification. | Supports filtering, campaigns, and personalized scripts. |
| Status history | LeadsStruct.status[] | Stage movement log with user, status, and comment. | Provides audit trail for every stage change. |
| Industry | LeadsStruct.industry | Business vertical. | Useful for B2B offers, scripts, segmentation, and AI recommendations. |
| Time zone | LeadsStruct.timezone | Lead time zone. | Prevents calling or messaging at the wrong local time. |
| Products | LeadsStruct.products[] | Products or services the lead is interested in. | Connects CRM to catalog, proposals, campaigns, and conversion analytics. |
| Interest category | LeadsStruct.category[] | Higher-level interest categories. | Useful when product-level interest is unknown. |
| Budget | LeadsStruct.budget | Expected deal value or customer budget. | Feeds lead value, revenue target, and prioritization. |
| Currency | LeadsStruct.currency | Currency for the budget. | Multi-currency teams need explicit values. |
| Consent given at | LeadsStruct.consentGivenAt | Date/time when marketing or contact consent was captured. | Automated outreach must respect consent rules. |
| Tags | LeadsStruct.tags[] | Flexible labels. | Tags make filtering, campaign targeting, and AI context easier. |
| Comment | LeadsStruct.comment | Internal lead comment. | Keeps sales context without putting it into customer-facing text. |
| Additional fields | LeadsStruct.fields[] | Custom fields added by the lead or pipeline form. | Stores business-specific data that standard fields do not cover. |
| Lead history | LeadsStruct.history[] | Audit events and notes. | Managers and agents can reconstruct what happened. |
| Script answers | LeadsStruct.script_state[] | Answers collected through stage scripts. | Scripts become structured qualification data. |
| Notes | LeadsStruct.notes[] | Internal notes added from the lead card. | Notes preserve conversation context and next steps. |
| LTV potential | LeadsStruct.ltv | Expected lifetime value. | Helps prioritize accounts beyond one deal. |
| Churn risk | LeadsStruct.risk | Risk of losing or failing to convert. | Useful for manager review and AI warnings. |
| Probability | LeadsStruct.probality | Estimated chance of winning. | Supports weighted pipeline forecasting. |
| AI advice | LeadsStruct.ai_advice | Suggested next action or analysis. | Future AI agents can explain why a lead should be called, nurtured, or closed. |
| Language | LeadsStruct.language | Preferred communication language. | Messages and scripts should match the lead language. |
| Order link | LeadsStruct.order | Order created or linked from the lead. | Connects CRM work to actual revenue. |
| Items | LeadsStruct.items[] | Products/items attached to the lead. | Useful for draft proposals and conversion to orders. |
| Task ID | TaskStruct.id | Stable follow-up task identifier. | Lead tasks must remain trackable after edits. |
| Task type | TaskStruct.type | To-do, goal, meeting, video, email, SMS, call, signature, delivery, lunch, pickup, etc. | Task type determines what action the manager must perform. |
| Task status | TaskStruct.status[] | New, pending, in progress, paused, postponed, completed, or canceled. | Prevents follow-ups from being invisible. |
| Task request type | TaskStruct.request | Info request, follow-up, document request, approval, review, preparation, reminder, issue, update, verification, offer, closing. | Explains why the task exists. |
| Task priority | TaskStruct.priority | Low, medium, urgent. | Helps organize follow-up work. |
| Task deadline | TaskStruct.scegul / finish | Scheduled and finish times. | Supports reminders, calendars, and SLA compliance. |
| Task assignees | TaskStruct.users[] | Employees responsible for the task. | Makes follow-up accountability explicit. |
| Task lead link | TaskStruct.lead | Lead ID attached to the task. | Keeps tasks visible inside the correct lead card. |
| Task comment | TaskStruct.comment | Task instructions. | The next person must understand what to do without re-reading the whole lead. |
Related guides
Use these guides to connect this section to adjacent SABSUS workflows.