Workflow: Field Agent — Distribution Through Agents
Modules involved: Leads · Clients · Tasks · Appointly · Sales Orders · Invoices · Payments · Sales Agent · Commission · Goals · Warehouse · Reports · DataPulse
Who uses it: Sales Agents · Sales Manager · Finance · Warehouse
Typical duration: Daily cycle (visits + orders) + Monthly cycle (commissions + targets)
Overview
Distribution companies with a field network — food, pharma, HORECA, cosmetics, building materials — operate through a model in which the sales agent is the primary point of contact with clients (shops, restaurants, clinics, pharmacies). The agent visits 8–20 clients daily, takes orders verbally or with a phone/tablet, checks available stock, and transmits orders to the warehouse for same-day or next-day delivery.
CRMConnect manages the entire cycle: from route planning in the morning, to taking orders in the field, real-time stock verification, warehouse confirmation, invoicing and recording cash payments, and through to automatic commission calculation after payment confirmation.
A second cycle — the monthly one — includes tracking agent targets against actuals, commission approval by the manager, and performance analysis by client portfolio and product category.
Flow Diagram
MORNING — ROUTE PLANNING
│
├── Visit tasks for today
│ created by manager or auto-generated (recurring clients)
├── Clients with recurring orders — due today
├── Clients with overdue invoices — to collect cash
└── New clients from Leads — to visit for the first time
│
↓
IN THE FIELD — CLIENT VISIT
│
├── Open client record → invoice balance + last orders
├── Check available stock for requested products
├── Create Sales Order (field order) with agreed products
│ prices applied automatically from client group's price list
└── Mark visit Task as Completed + add note
│
↓
ORDER CONFIRMATION
│
├── Sales Order Accepted → sent to warehouse for picking
├── Warehouse checks stock → creates Delivery Note → Packing List
└── Delivery to client: with own driver or courier
│
↓
INVOICING & PAYMENT
│
├── Invoice generated from Sales Order (manual or automatic)
├── Cash payment in field → recorded immediately in Payments
├── Card/POS payment → recorded with transaction reference
└── Deferred payment (credit) → due date tracking + overdue alert
│
↓
COMMISSION
│ calculated automatically after invoice payment confirmation
│ visible at /admin/commission → Pending Approval
│ Manager approves → Commission finalized
│
↓
DAILY / MONTHLY REPORTING
│
├── Actuals vs. Targets (Goals) — agent sees progress
└── Manager sees entire team performance in DataPulse
[MONTHLY TARGET UPDATED ✓ · COMMISSION APPROVED ✓ · ACTIVE PORTFOLIO ✓]
Step by Step
1. Agent Setup and Commission Structure
Where: /admin/sales_agent + /admin/commission
Before an agent can be tracked in the system, they must be configured as a Sales Agent — distinct from the agent's CRMConnect user account.
1a. Creating a Sales Agent
Where: /admin/sales_agent → New Sales Agent
| Field | Description |
|---|---|
| Name | Agent's full name |
| User Account | Agent's CRMConnect user account |
| Email for notifications and reports | |
| Commission Rate (%) | Base commission (e.g. 3% of net sales value) |
| Commission Type | percentage / fixed amount per item / tiered |
| Active | Yes/No — temporary deactivation without deletion |
Supported commission types:
| Type | Description | Example |
|---|---|---|
| Percentage | % of net sales value (excluding VAT) | 3% of each invoice |
| Per Item | Fixed amount per unit sold | 0.50 RON/pcs |
| Tiered | Different percentage per performance tier | 0–50k RON = 2%; 50k+ = 4% |
1b. Assigning Clients to Agent
Where: /admin/clients → edit client → Sales Agent field
Each portfolio client is assigned to an agent. This assignment determines:
- Which agent's orders are credited (commission)
- Filtering in reports per agent
- Client visibility if the agent has restricted access to their own portfolio
Bulk import: If you have hundreds of clients, use CSV import from /admin/clients/import with the sales_agent_id field filled in.
1c. Configuring Monthly Targets (Goals)
Where: /admin/goals → New Goal
| Field | Description |
|---|---|
| Agent / Staff | The targeted agent |
| Goal Type | Revenue / Quantity / Number of Clients Visited |
| Target Value | Target value (e.g. 80,000 RON) |
| Period | Month + Year |
| Notes | Details: target per product category or per area |
Best practice: Create targets at the beginning of each month. The agent can see their real-time progress from their own dashboard.
2. Daily Route Planning
Where: /admin/tasks + /admin/appointly
2a. Visit Tasks
Where: /admin/tasks → filter: assigned to agent + due date: today
Visit tasks can be:
| Source | Created by | Visit type |
|---|---|---|
| Manager | Manager at start of week | Mandatory visits (key clients, debt recovery) |
| Recurring | System / repeated template | Clients with fixed frequency (daily / weekly / monthly) |
| Agent | The agent themselves | Opportunistic visits, new prospects |
| Assigned lead | CRM automatically on lead assignment | First visit to new prospect |
Visit Task fields:
| Field | Value / Note |
|---|---|
| Title | Visit [Client Name] — [Date] |
| Type | Visit / Follow-up / Debt Collection / New Client |
| Related To | Link to client record or Lead |
| Assigned To | The agent |
| Due Date | Visit date |
| Priority | Normal / High (for clients with large debts) |
| Notes | Visit agenda: which products to promote, what to collect |
2b. Appointly — Appointments
Where: /admin/appointly
For visits scheduled in advance (key clients, new product presentations, negotiations), use Appointly for:
- Visual calendar with all team visits
- Appointment confirmation via email/SMS to client
- Google Calendar integration (if active)
Morning preparation — agent checklist:
- Open Tasks → filter Today + Assigned to Me → sort by priority
- Check Appointly → confirmed appointments for the current day
- Identify clients with overdue invoices in portfolio (receivables report)
- Note anticipated recurring orders (clients with fixed frequency)
- Check general stock for main products — avoid impossible promises
3. Client Visit — Field Procedure
Where: /admin/clients/[id] (mobile access) + /admin/invoices (client balance)
3a. Opening the Client Record
Upon arriving at the client, the agent opens the client record in the CRM (mobile browser or app):
Information checked at each visit:
| Information | Where in CRM | Importance |
|---|---|---|
| Overdue invoice balance | Invoices tab → filter status Overdue | Critical — if overdue > credit limit, no new order taken |
| Last order | Sales Orders / Invoices tab → last entry | Context of what was purchased last time |
| Preferred products | Order history — most frequent | Proactive recommendation |
| Client internal note | Description / Internal Notes field | Preferences, special conditions, contact person |
| Credit limit | Credit Limit field in client record | Do not accept orders exceeding the limit |
| Applied price list | Client Group → Price List | What prices are shown to them |
Alert signal — client with overdue amounts:
If total overdue invoices > set credit limit or if the client has invoices with due date exceeded > 30 days:
- Do not take a new order without manager approval
- Attempt cash recovery of the outstanding amount
- Record payment immediately in Payments (field cash)
- Escalate to manager if client refuses payment
3b. Checking Available Stock
Where: /admin/warehouse/commodities → current balance or from Sales Order when adding a product
Before confirming quantities, the agent checks real availability:
Important: CRMConnect does not reserve stock when the Sales Order is created. If two agents simultaneously take orders for the same product, both sales orders are accepted, but stock is only decremented at the delivery note. The warehouse must manage delivery priority.
Recommended procedure:
- Add product to Sales Order → CRM can show available stock next to the product (if option is active)
- If insufficient stock → notify client immediately and offer available alternative or ETA for replenishment
- Do not confirm quantities you know are unavailable
3c. Creating the Field Order (Sales Order)
Where: /admin/estimates → New Sales Order
Required fields:
| Field | Value |
|---|---|
| Client | The visited client (searched by name / code) |
| Date | Current date |
| Expiry Date | Offer validity date (e.g. today + 1 day for urgent orders) |
| Sales Agent | Current agent (auto-filled if logged in) |
| Warehouse | Warehouse from which delivery occurs |
| Price List | Applied automatically from client's group |
| Items | Products + quantities agreed with client |
| Discount | If agent has permission to offer an ad-hoc discount |
| Notes | Delivery instructions: schedule, client warehouse contact person, floor |
| Delivery Date | Desired delivery date — communicated to warehouse |
Prices are applied automatically from the client group's Price List. The agent sees the selling prices; if they have permission, they can also see the margin.
Sales Order statuses during the visit:
| Status | When | Agent action |
|---|---|---|
| Draft | At creation | Editable — agent adjusts products/quantities |
| Sent | Sent to client for confirmation (optional) | Client receives email with order details |
| Accepted | Confirmed — sent to warehouse | Warehouse sees the order and prepares picking |
3d. Completing the Visit — Task Completed
Upon leaving the location:
- Open visit Task → Mark as Completed
- Add internal note: what was discussed, what was ordered, client-reported issues, follow-up actions
- If client paid cash: record payment immediately (see Step 7)
- If a new client was identified in the field: create a new Lead for them
4. Prospecting New Clients in the Field (Leads)
Where: /admin/leads → New Lead
The agent identifies shops, restaurants or other points of sale in the field that are not yet in the portfolio. They add them directly as Leads.
Field Lead fields:
| Field | Value |
|---|---|
| Company Name | Shop / company name |
| Contact Name | Person spoken to |
| Phone / Email | Direct contact |
| Source | Field Visit / Referral / Cold Canvass |
| Assigned To | The agent who identified them |
| Status | New → first contact |
| Notes | Products they were interested in, current distributor, objections |
| Address | Work location address |
Lead → New Client pipeline:
New Lead (identified in the field)
│
↓ Contacted — agent returns with offer
│
↓ Offer Sent — Sales Order sent as commercial proposal
│
↓ Negotiation — payment terms, credit, price
│
↓ Converted to Client
│ create Client record + assign Client Group + Price List
│ assign current agent
│
→ First order processed like any active client
5. Order Processing at the Warehouse
Where: /admin/warehouse/manage_delivery (warehouse) + /admin/estimates (agent)
5a. Order Visibility at the Warehouse
Once the agent marks the Sales Order as Accepted, the warehouse sees the order in the list of orders to prepare.
Warehouse flow:
- Warehouse manager opens
/admin/estimates→ filter: status Accepted + Warehouse: their warehouse - Checks stock availability for each product in the order
- Creates Delivery Note from Sales Order (or from Invoice if invoice was generated first)
- Upon Delivery Note approval: stock decreases automatically + Packing List generated
- Parcels prepared + AWB generated (if courier delivery)
- Delivery dispatched: with agent's vehicle (same tour) or with delivery team
5b. Warehouse ↔ Agent Communication
If delivery is impossible (insufficient stock for some products):
| Situation | Warehouse action | Agent action |
|---|---|---|
| Partial stock available | Partial delivery note (type_of_delivery = partial) |
Notify client about partial delivery + ETA for remainder |
| Product completely unavailable | Remove product from delivery note + notify agent | Offer substitute or record backorder |
| Delivery address unclear | Send message to agent (Tasks / notification) | Complete address in client record |
6. Invoicing Field Orders
Where: /admin/invoices
6a. Generating the Invoice
The invoice can be generated at two points:
| Point | How | When |
|---|---|---|
| At order confirmation | Sales Order → Convert to Invoice | Clients with immediate cash payment |
| At physical delivery | From Delivery Note → Create Invoice | Clients with credit (deferred payment) |
| Automatically on Accept | estimate_auto_convert_to_invoice_on_client_accept = 1 |
If option is globally active |
Invoice statuses:
| Code | Status | Required action |
|---|---|---|
| 6 | Draft | Verify and send |
| 1 | Sent / Uncollected | Follow up at due date |
| 3 | Partially Paid | Follow up on remaining balance |
| 2 | Paid | Agent's commission becomes eligible |
| 4 | Overdue | Escalate to debt collection |
| 5 | Cancelled | Stock restored if setting active |
6b. eFactura B2B
For legal entity clients (B2B), the invoice is automatically transmitted to ANAF e-Factura upon issuance (if the module is active). The agent has no additional actions — the process is automatic. The transmission status is visible in the eFactura tab of the invoice record.
7. Recording Field Payments
Where: /admin/invoices/[id] → Add Payment + /admin/payments
7a. Cash Payment in the Field
The agent collects cash from the client at the time of delivery or visit:
- Open client invoice in CRM (mobile)
- Add Payment → fill in:
- Amount: amount collected
- Payment Mode:
Cash - Date: current date (not retroactive)
- Reference: cash register receipt or receipt number (if issued)
- Note:
Cash collected in field by [Agent Name]
- If partial payment: partial amount + remaining balance stays open
- Invoice moves to
PaidorPartially Paidstatus
Important: Recording field cash must be done immediately or no later than upon returning to the office. The collected cash must be deposited at the cashier and reconciled with payments recorded in the CRM.
7b. Card/POS Payment
- Add Payment → Payment Mode:
Card / POS - Reference: POS transaction number or last 4 digits
- Amount: exact amount processed
7c. Bank Transfer Payment (Credit)
Clients with payment terms (Net 15, Net 30) do not pay in the field. Invoices remain in Sent status until payment is confirmed:
- At due date → system automatically marks invoice as
Overdue - Responsible agent receives notification (if alerts are configured)
- Upon receipt of bank statement → Finance records payment in CRM
- Alternatively: client can pay online via link in email (if gateway active)
8. Commission Calculation and Approval
Where: /admin/commission
8a. How Commission Is Calculated
The agent's commission is calculated automatically based on the configuration in Sales Agent:
Eligibility condition:
Invoice associated with agent's order → status = Paid (2)
Calculation:
Invoice net value × Agent commission percentage = Gross commission
Example:
Invoice #INV-2847: 4,200 RON (excluding VAT)
Agent: Ion Popescu — 3% commission
Gross commission: 4,200 × 3% = 126 RON
Commission statuses:
| Status | Description | Action |
|---|---|---|
| Pending | Automatically calculated when invoice is paid | Awaiting manager approval |
| Approved | Approved by manager | Included in payroll |
| Rejected | Rejected (e.g. returns, disputes) | Agent notified with reason |
| Paid | Commission has been paid to agent | Recorded in HR / Payroll |
8b. Approval Flow (manager)
/admin/commission→ filter: Status = Pending + Current Month- Verify each line: associated invoice, agent, amount, payment date
- Approve All (if everything is correct) or Approve individually
- Approved commission is submitted to HR Payroll for inclusion in the month's payroll
Commission corrections:
| Situation | Action |
|---|---|
| Client returns goods after invoice payment | Commission is adjusted (or a negative commission is created) |
| Invoice cancelled after commission approval | Manager manually rejects commission + cancellation note |
| Agent resigned — orders in progress | Commissions from invoices paid before resignation remain valid |
9. Target Tracking and Performance Reporting
Where: /admin/goals + /admin/reports + /admin/datapulse
9a. Per-Agent Targets (Goals)
The agent sees their progress against the target in real time:
Where: /admin/goals → filter current month + current agent
| Tracked indicator | How measured in CRM |
|---|---|
| Monthly revenue (RON) | Sum of agent's paid invoices in current month |
| Number of clients visited | Completed Tasks of type Visit in current month |
| New active clients | Clients with first invoice in current month |
| Leads converted | Leads with status Converted from current agent |
| Value of orders taken | Sum of Sales Orders Accepted in current month |
9b. Manager Dashboard — Team Performance
Where: /admin/datapulse (if active) or /admin/reports/sales_by_staff
| Report | What you track |
|---|---|
| Sales per agent (monthly) | Who is performing, who is below target |
| Top clients per agent | Concentration risk — if one client is 50%+ of agent's sales |
| Visit frequency | How many clients each agent visited daily / weekly |
| Receivables per agent | Outstanding debt portfolio per agent |
| Lead → Client conversion | Prospecting efficiency |
| Cancelled orders per agent | Quality of taken orders |
9c. Daily Agent Report
At the end of the day, the agent fills in (or the manager automatically extracts):
- Completed Tasks → how many visits were made
- Sales Orders created → total value of orders taken
- Cash collected → total from Payments of type Cash on current day
- New Leads → prospects identified in the field
- Issues / escalations → noted in tasks or client notes
What Is Created Automatically
| Event | Created automatically | Condition |
|---|---|---|
| Sales Order accepted by client (portal) | Agent + manager notification | Alert configured in Settings |
| Sales Order → Invoice | Invoice generated automatically | estimate_auto_convert_to_invoice_on_client_accept = 1 |
| Invoice created | Delivery note (draft) | auto_create_goods_delivery = 1 |
| Delivery note approved | Stock decreased + outbound transaction recorded | Always |
| Invoice paid | Agent commission calculated and placed in Pending | Commission module active + agent assigned |
| Invoice past due date | Status automatically changed to Overdue | Nightly job / daily cron |
| Goal target — threshold reached | Agent notification (if configured) | Goals module + active alerts |
| Lead assigned to agent | Automatic contact task | If Lead → Task automation workflow is configured |
Points Where the Flow Can Block
| Problem | Likely cause | Solution |
|---|---|---|
| Agent cannot see stock from mobile | Missing permissions on user account | Admin → User Permissions → enable Warehouse / Commodities access in read-only mode |
| Prices in Sales Order don't match what agent negotiated | Client not in correct group or Price List expired | Check Client Group → assigned Price List; if special negotiation → manual line discount or dedicated Price List |
| Commission not calculated after invoice payment | Agent not assigned on invoice / sales order | Check Sales Agent field on Sales Order → if missing, add manually and recalculate |
| Delivery note blocked — stock 0 | Another agent or order consumed the stock | Warehouse notifies agent → agent contacts client + decides: wait for replenishment or partial order |
| Client refuses to pay at delivery | Quality dispute or order discrepancy | Do not cancel invoice in the field — escalate to manager; if partial return: create return delivery note from invoice |
| Visit tasks not showing for agent | Tasks not correctly assigned or filter is wrong | Check Assigned To field on task + Due Date = today; manager re-checks assignments |
| Commission calculated incorrectly (high/low amount) | Commission percentage incorrectly configured on Sales Agent | /admin/sales_agent → edit agent → verify Commission Rate and Commission Type |
| Field Leads not progressing in pipeline | Agent creates them but doesn't follow up | Manager checks open Leads per agent weekly + conversion target in Goals |
| Field-collected cash not recorded on the day | Agent forgets or lacks stable mobile access | Procedure: cash is recorded at base end of day mandatory; administrator checks daily Payments > Cash for current day |
| Invoice generated but not sent to client | Invoice remains in Draft status | Check if auto_send_invoice is disabled; agent or finance sends manually from invoice record |
Relevant Reports
- Sales by Staff / Agent —
/admin/reports/sales_by_staff— sales per agent: value, number of invoices, active clients - Commission Report —
/admin/commission— pending and approved commissions per agent per month - Goals Progress —
/admin/goals— actuals vs. target per agent per month - Client Invoices Overdue —
/admin/invoices?status=4filtered by Sales Agent — receivables per agent portfolio - Tasks Completed —
/admin/tasks?status=completed— visits made: frequency per client, per agent - Leads by Agent —
/admin/leadsfiltered by Assigned To — active prospecting and conversion - Payments Cash —
/admin/payments?payment_mode=cash— cash collected per day per agent (cashier reconciliation) - Sales Orders Pipeline —
/admin/estimates?status=2— sent orders, not yet confirmed - DataPulse —
/admin/datapulse— executive dashboard: top agents, trends, underperformance alerts
Modules Involved — Detailed Documentation
Clients & CRM: Leads · Clients · Client Groups · Tasks · Appointly
Sales & Invoicing: Sales Orders · Invoices · Payments · Price Lists
Agents & Performance: Sales Agent · Commission · Goals
Warehouse: Delivery Notes · Inventory History
Reports & Analytics: Reports · DataPulse
Related Workflows: Lead → Cash · Full Commercial Cycle · Warehouse Inbound → Outbound · OmniSales Fulfillment