Actions and results

What each CRM button and automatic behaviour does, with worked numbers and what the system refuses.

On this page (35)

CRM dashboard

ActionWhenWhat you doWhat happens
Open the dashboard and read the tilesA team with 2 won, 1 lost, 4 open opportunities of 10,000 AED each in the period; user holds dashboard.crm1. CRM > Dashboard (MTD).
2. Read Pipeline value, Win rate, Avg deal size, Activities due.
Pipeline value shows 40K (4 x 10,000, compact form); Win rate 66.7% with foot '2 won - 1 lost' (won / (won + lost)); Avg deal size 10K; counts only deals the user may see.
Filter by team, owner, source and periodDeals of two teams and two sources exist1. Pick Sales team = North.
2. Pick Owner = one rep.
3. Pick Source = Expo.
4. Change period to QTD, then YTD.
Every tile and panel recalculates for only that team, owner, source and the chosen dates; 'Showing from - to' dates under the period change; All teams / All salespersons / All sources reset it.
CRM alerts panel countsOpen records with: one overdue activity, one record without a team, one lead with no contact for 14+ days, one deal 31 days in one stage, one deal past its close date, two leads sharing an e-mail1. Open the dashboard.
2. Read the six alert rows.
Alerts show Overdue activities 1, Open records without a team 1, No contact > 14 days 1, Stale deals > 30 days in stage 1, Deals past close date 1, Possible duplicate leads counted.
Top opportunities listMore than 8 open opportunities1. Scroll to Top opportunities.Shows the 8 largest by expected value ('Showing 8 of N') with owner, stage, close date, value, probability, source and next activity or 'No activity'.
Dashboard permissionUser without dashboard.crm1. Open CRM as that user.The Dashboard menu entry is hidden and the data request is refused with 'You do not have permission for this action.'.
Dashboard placeholder figuresDashboard with sources and forecast panels1. Read Cost / lead, Campaign ROI and Quota cover.All three show an em dash on every company: these are not built yet.

Leads

ActionWhenWhat you doWhat happens
Create a leadUser with crm.manage on a team as representative; first stage does not need qualification1. CRM > Leads > New lead.
2. Enter Subject 'Villa fit-out', Contact 'Khalid', Email 'khalid@alnoor.example', Source 'Trade show'.
3. Save.
Record gets the next reference (CRM-00000n), kind Lead, status Open, owner = you, stage = first non-qualification stage, probability = that stage's default; an Episode 1 and a first stage-history row are created; a 'created' event is logged; Trade show is added to the Lead sources list.
Save is retry-safeA new lead form open1. Fill a new lead and press Save twice quickly (or resend the same request key).Only one lead is created; the second request returns the first one. The same key with changed details is refused: 'This request key was already used with different details.'
Subject is mandatoryNew lead form1. Leave Subject blank.
2. Save.
Refused: 'Enter valid text (maximum 180 characters).' on Subject; nothing saved.
Owner must belong to the teamTeam North has rep A and reader B1. New lead, Sales team North, Owner B.
2. Save.
Refused: 'The owner must be a representative or manager in this team.' Choosing A saves.
Same source id is captured onceLead CRM-000010 has Source 'Expo' and external id 'EX-77'1. By API or import create another lead with Source 'Expo' and external_id 'EX-77'.Refused with 409: 'Expo EX-77 is already CRM-000010.' (field external_id, code duplicate_external). A different source with the same id is allowed.
Territory follows the country and cityTerritories: UAE (countries: United Arab Emirates) and Dubai (parent UAE, city Dubai); both valid today1. New lead, Country United Arab Emirates, City Dubai.
2. Save and open Ownership tab.
Territory shows the most specific match: Dubai (a city-specific or child territory beats its parent). With country Oman and no match the Territory shows 'None matched'.
Score is worked out on every saveDefault scoring (email 10, phone 10, budget > 0 20, decision maker 15, need 15, close date 10, customer 20)1. Create a lead with email, phone, decision maker 'MD', need 'fit-out' and no budget or date.
2. Open Criteria & score.
Score = 10 + 10 + 15 + 15 = 50; the explanation lists all 7 rules with matched yes / no and the policy name 'DEFAULT v1'. Adding budget 100000 and a close date and saving makes it 80.
Duplicate candidates are raised on saveCustomer 'Al Noor' has email khalid@alnoor.example; another open lead has phone 05012345671. Save a lead with that email and phone '+971 50 123 4567'.
2. Open Duplicate review.
Two open candidates appear (match email with the customer, match phone with the other lead; phone compared after removing non-digits and leading zeros). The record shows the yellow 'Potential duplicates - review before conversion' box. Nothing is merged.
Edit with the version checkTwo users open the same lead1. User A edits the phone and saves.
2. User B (older copy) edits the email and saves.
B is refused: 'This record changed. Reload it before saving.' A's change stands.
A closed or archived record is not editableA won deal1. Open it and try to Edit and Save.Edit button is not offered; by API: 'Reopen and unarchive the record before editing.'
Do not contact blocks calls and e-mailsLead with Do not contact on1. Schedule a call activity.
2. Schedule an internal task.
Call refused: 'This contact is marked Do not contact. Only internal tasks are allowed.' The task saves.
Tags and source join the mastersTag 'VIP' does not exist yet1. Type tag VIP and source 'Referral' on a lead and save.
2. Open Configuration > Tags and Lead sources.
Both appear as new active entries (an archived entry of the same name is not re-activated). More than 20 tags refused: 'Use up to 20 tags.'
Export every permitted recordUser sees 12 of 40 deals through team scope1. Press Export on Leads or Opportunities.A CSV 'crm-records.csv' downloads with the 12 visible rows and every field the user may read (fields hidden by field security are absent).
Delete a leadAn untouched lead (never qualified, closed or merged), owner or manager1. Open the lead > Delete > confirm.
2. Or tick several rows and Delete.
Lead, its events, stage history, duplicates, activities and assignments are removed; the audit keeps 'crm.deleted' with the number. Bulk delete sends one request per record and lists the ones kept.
Delete is refused when history exists(a) a lead that was qualified; (b) a record with a quotation; (c) a merged record; (d) a record you cannot change1. Try Delete on each.(a)/(c): 'It has been qualified, closed or reopened; its history is kept. Archive it instead.' / merge text; (b) 'A quotation was raised from this record. Archive it instead.'; (d) 'Only the owner or a team manager can change this CRM record.'

Lead / opportunity record

ActionWhenWhat you doWhat happens
Qualify a leadOpen lead with need and expected close date filled, no required criteria open; pipeline has a stage 'Qualified' with Qualification required1. Open the lead > Qualify.
2. Confirm date and need > Save.
Kind becomes Opportunity, qualified date set, deal moves to the first active qualification-required stage of its pipeline (probability = that stage's default), a 'qualified' stage-history row and event are written, Convert / Qualify buttons are replaced by Mark won / Mark lost.
Qualify needs the need and the dateLead with no need and no close date1. Press Qualify and Save with both blank.
2. Fill only the date and retry.
First: 'Record the customer need and the expected close date before qualification.' Then: 'Record the customer need before qualification.' Nothing changes.
Required qualification criteria block QualifyCriteria 'Budget confirmed' (yes/no, required) and 'Site visited' (yes/no, required) active; lead answered only the first1. Criteria & score tab: tick Budget confirmed > Save answers.
2. Try Qualify.
Qualify refused: 'Answer the qualification criteria first: Site visited.' After ticking it, Qualify works. Answers raise the score through the scoring rules (qualification.<code>).
Convert to opportunity shortcutLead open1. Header action Convert to opportunity (or quick action Create opportunity).Opens the same Qualify dialog; no separate conversion path exists.
Only open leads qualifyAn opportunity, an archived lead, a lost lead1. Try the qualify action on each (API).Refused: 'Only an open, unarchived lead can be qualified.'
Link an existing customerOpportunity with no customer; active customer 'Al Noor' exists1. Link / create customer > Link an existing customer > pick Al Noor > Save.Customer shows on the record and the Customer smart button; a customer that is archived or supplier-only is refused: 'Select an active customer.'
Create a new customer from the lead (administrator)Admin user; lead has organization 'Al Noor Trading LLC' (business) and no matching contact1. Link / create customer > Create a new customer.
2. Edit name/e-mail/phone if needed > Save.
A customer contact is created (kind customer, market from the record, payment days 0) and linked. If a matching contact exists: 'Matching contacts already exist. Select the existing customer; review supplier or archived matches in Contacts.' A non-admin gets 'Administrator access required.'
Customer cannot change once quotedOpportunity with a quotation1. Try to link a different customer or clear the customer.Refused: 'A quoted opportunity cannot be moved to another customer.'
Mark an opportunity wonOpen opportunity of 50,000 AED, 60%, active customer linked1. Mark won > enter reason 'Contract signed' > Save.Status Won, closed date set, probability 100, loss reason cleared, the open episode closes with outcome won and final amount 50,000.00, event written. No invoice or revenue is posted by this action (a won deal is not recognised revenue).
Won needs a customerOpportunity without a customer1. Mark won.Refused: 'Link an active customer before marking the opportunity won.'
Mark an opportunity lost with a controlled reasonActive loss reasons of category lost: Price, No budget (needs a note)1. Mark lost, leave the reason list blank > Save.
2. Choose No budget, no note > Save.
3. Choose Price with a note > Save.
1: 'Choose why it was lost.' 2: 'This reason needs a note.' 3: status Lost, probability 0, closure probability remembered (60), episode closed with outcome lost and the reason.
Disqualify a leadOpen lead; reasons of category disqualified or both1. Disqualify > choose Not a fit + reason text > Save.Status Disqualified; leads are disqualified, opportunities are won or lost: 'Disqualify leads; mark qualified opportunities won or lost.' if the wrong one is used.
Closing a closed recordWon deal1. Try Mark lost on it (API).Refused: 'Only an open, unarchived record can be closed.'
Reopen a closed recordLost deal; user is team manager or admin1. Reopen > reason 'Customer came back' > Save.Status Open, probability returns to the value it had at closure, archive flag cleared, episode number +1 with the reopen reason; the closed episode stays unchanged (history is never rewritten); stage-history row cause 'reopened'.
Only a manager reopensLost deal; user is a plain representative who owns it1. Reopen.Refused: 'Only a team manager can reopen a closed record.'; reopening an open record: 'This record is already open.'
Archive and unarchiveClosed (won/lost/disqualified) deal1. Change archive status twice.
2. Try on an open deal.
Archived flag toggles (hidden column Archived shows Yes); open deal refused: 'Close the record before archiving it.'
Add a noteAny deal the user may change1. Add note > text > Save.Event 'note' appears in the right-hand history and in Timeline; the record's version increases; blank note refused 'Enter valid text (maximum 8000 characters).'
Create a quotation from an opportunityOpen opportunity with active customer; Sales module installed1. Create quotation > date today, Valid until 31 Oct > Save.
2. Open Quotations tab.
A draft Sales quotation is created for that customer with the note 'CRM CRM-00000n: <subject>' and linked; the tab shows its number, state, date, total, versions and whether it became an order. The deal's version increases and 'quotation' is logged.
Quotation requests are retry-safeSame request key sent twice1. Send the quotation request again with the same key and details.
2. Send again with a different date.
Same quotation returned, none duplicated; with changed details: 409 'This quotation request key was already used with different details.'
Quote from products of interestProduct lines: 4 x Product A (indicative 1,250) and 2 x Product B (indicative 3,000); Sales price list says A = 1,1001. Products tab > Create quotation from products.
2. Open the quotation lines.
Lines carry product and quantity only (4 and 2); prices come from the Sales price list (A at 1,100), not the indicative 1,250. With no product lines: 'Add a product of interest with a product before quoting from them.'
A quotation needs an open opportunity with a customerA lead, or an opportunity with no customer1. Request a quotation.Refused: 'Create quotations from an open opportunity linked to an active customer.'
Quotation-to-order status shows on the dealQuotation confirmed in Sales1. Confirm the quotation in Sales.
2. Reopen the deal's Quotations tab.
Column shows 'Sales order', delivery and billing state, version list; is_order true. CRM never creates the order itself.
Stage history and episodesDeal moved New -> Qualified -> Proposal, lost, then reopened and won1. Open the Stage history tab.One row per stay with entered / left, days, probability then and the stage default then, criteria version of the rules passed; two episodes (1: lost with reason, 2: won with amount). Changing a stage's default probability later changes none of these rows.
Timeline is read-only and completeDeal with notes, a stage move, an assignment, an activity, a response and a consent change1. Open Timeline & consent.One list, newest first, merging events, stage entries, assignments, activities, campaign responses and consent changes; nothing is editable.
Print and quick actionsOpen record1. Press Print; use Schedule activity, Log call and Send email quick actions.Print shows the record; Log call / Send email open the activity form (nothing is sent: 'Activities are reminders; no emails or calls are sent automatically.').

Opportunities

ActionWhenWhat you doWhat happens
Drag a card to another stageBoard view, opportunity in New (probability 10%); Proposal stage default 60%1. Drag the card from New to Proposal.The same save as the form is sent with the version number: stage changes, probability becomes 60, days-in-stage resets, stage history gets a 'moved' row with the previous stay closed and its duration; a card you may not change or a stage the rules refuse returns the server message and the card snaps back.
Stage entry criteria block a moveStage Proposal requires Budget and Customer need; deal has no budget1. Drag/choose Proposal.Refused: 'Proposal needs: Budget, Customer need.' (code stage_entry_blocked); the same message from the form and from the API.
Allowed next stagesStage New may move only to Qualified1. Try moving a New deal straight to Negotiation.Refused: 'From New a deal may move only to Qualified.' (code stage_not_allowed). A stage of another pipeline: 'That stage belongs to another pipeline.'
A lead cannot enter a qualification stageStage Proposal has Qualification required; record is a lead1. Edit the lead's Stage to Proposal.Refused: 'Qualify the lead before entering this stage.' and the Stage list on a lead hides such stages.
Next stage button and last stageCard in the second-last and the last active stage1. Press 'Next stage' on each.Moves one stage along the active stages (that a lead may enter); on the last: 'This is the last stage.'
New opportunity from a laneBoard1. Press + on the Proposal lane.New record form opens with that stage preselected; saving needs an expected close date for an opportunity.
Pivot viewDeals of several teams1. Look = Pivot; rows Stage, columns Status, measures Expected value and Deals; set From / To on Expected close.Totals equal the list for the same filters and only include deals the user may see; up to 6 measures allowed.

Activities

ActionWhenWhat you doWhat happens
Schedule an activity with a due timeOpen deal; activity type 'Call' (reminder 30, escalate after 24 h); company zone Asia/Dubai (UTC+4)1. Record > Schedule activity > Subject 'Follow-up call', Type Call, Due date 2026-10-05, time 14:30 > Save.Saved as planned; due instant is 10:30 UTC; reminder at 10:00 UTC (30 min before); escalation at 10:30 UTC on 6 Oct (24 h after); list shows due 2026-10-05 14:30 Asia/Dubai. The assignee is you unless chosen.
Mark an activity done with a required outcomeType has Outcome required and codes INTERESTED, NOT_NOW1. Open the activity > Action Mark done > no outcome > Save.
2. Choose INTERESTED > Save.
1: 'Choose the outcome of this activity.' 2: status Done, completed time set, outcome saved; a done activity can no longer be edited ('A completed or cancelled task cannot be changed. Schedule a follow-up.').
Follow-up created when completingOpen activity1. Mark done with Follow-up 'Send contract' due 2026-10-10 10:00.A second activity is created on the same deal, linked to the first (follow_up_of), with a request key derived from the first so a retry makes no second one. Without a subject or on Cancel: 'A follow-up needs a subject, and follows a completed activity.'
Cancel an activityOpen activity1. Action Cancel activity > outcome text > Save.Status Cancelled, no outcome code needed; dropped from My agenda and overdue counts.
Activities need an open recordClosed or archived deal1. Try Schedule activity.Refused: 'Schedule activities on open, unarchived records.'
A representative closes their own task without edit rightsRep A is assigned a task on a deal owned by rep B1. As A mark the task done.
2. As A try to reschedule it.
Done works (own completion); rescheduling is refused: 'Only the owner or a team manager can change this CRM record.'
Reminder and escalation sweepActivity due 10:30 UTC, reminder 10:00, escalate 24 h; team leader or manager exists1. Run the sweep after 10:00 UTC (job 'crm.activity_sweep', or POST activities/sweep as crm.configure).
2. Run it again after 10:30 UTC the next day.
3. Run it once more.
First run marks it reminded and logs 'activity.reminder' on the deal; second marks it escalated to the team leader (or first manager other than the assignee) and logs 'activity.escalated'; the third changes nothing (each clock fires once). Nothing is pushed to the notification bell. Rescheduling resets both clocks.
Apply a task sequenceSequence 'Onboarding' with steps offsets 0, 2, 7 days at 09:00; company today 2026-10-051. Ownership tab > pick the sequence > Schedule its steps.
2. Press it again with the same key.
Three activities are created for 5, 7 and 12 Oct at 09:00 Dubai, assigned to the deal owner, numbered 1-3; a repeat with the same key adds none.
Consent blocks purpose-bound contactActivity type with consent purpose 'newsletter'; contact opted out in the Marketing register1. Schedule an e-mail activity of that type.Refused: '<contact> may not be contacted by email for newsletter: <reason>.' (code consent_blocked). With no register installed it is refused too; a type with no purpose, or 'transactional' / 'support', is allowed; meetings and tasks need no consent.
Activities list and overdue flagPlanned activity due yesterday1. Open CRM > Activities.Due date is red (overdue); Status Planned; hidden column Overdue = yes; Outcome empty.

My agenda

ActionWhenWhat you doWhat happens
My agenda ordering and escalationsRep has 3 open activities and 1 escalated to them1. Open CRM > My agenda.Escalated to me lists the escalated one; My open activities lists mine soonest first (by due instant, else due date end of day); overdue due dates show red; a row opens the deal's Activities tab. Only deals in the user's scope appear.

Ownership tab

ActionWhenWhat you doWhat happens
Manual reassignmentManager of team North; deal owned by rep A1. Ownership > New owner rep B, Reason 'A on leave' > Reassign.Owner and team change; an assignment row (method manual, from/to owner and team, reason) and a 'assigned' event are written; assignment state 'Assigned'. Same owner and team: 'The record already belongs there.'
Only managers reassignRep who owns the deal1. Open Ownership tab; try to reassign by API.The form is replaced by 'A manager of the team reassigns records.'; server: 'Only a manager of the team (or an administrator) can reassign this record.' Moving to another team needs manager rights in both.
Reassignment retry does nothingSame request key1. Send the assignment twice with one key.Second call returns the deal unchanged; one history row.

Assignment rules

ActionWhenWhat you doWhat happens
Round robin placement on importRule 'NORTH' round robin for team North, members ids 5, 6, 7 (reps), last placed user = 5, no capacity limit1. Import 3 leads without choosing a team.Leads go to 6, 7, then 5 (next higher id, wrapping); each gets an assignment row 'By a rule' with the rule code and the rule remembers the last person.
Least loaded placementOpen deals: person 5 has 3, person 6 has 1, person 7 has 2; method least loaded1. Import one lead.Placed on person 6 (fewest open deals; ties by lowest id).
Capacity limit and the queueRule capacity 2; every member already holds 2 open deals; no other rule matches1. Import a lead.
2. Open CRM > Leads > Assignment queue.
The lead is not given to anyone; it waits in the queue (assignment state queued) with source and territory shown. Rule order is by Priority number (lowest first); rules outside Valid from / to, with other sources, markets or territory are skipped.

Assignment queue

ActionWhenWhat you doWhat happens
Run assignment rules againQueued lead; capacity freed in the team; user manages that team1. Press Run assignment rules.Message '1 placed, 0 still waiting.'; deals of teams the user does not manage are skipped; audit 'crm.assignment.run' written.

Coverage delegations

ActionWhenWhat you doWhat happens
Cover works for its dates onlyDelegation: rep A away, rep B covers, team North, 5-12 Oct1. On 6 Oct, as B edit a deal owned by A.
2. On 13 Oct try again.
6 Oct: allowed (B acts as the owner); 13 Oct: 'Only the owner or a team manager can change this CRM record.' Cover ends by itself; switched off delegations do nothing.

Territory access

ActionWhenWhat you doWhat happens
A territory-limited person sees only their territoriesReseller user limited to Dubai territory (child of UAE); deals in Dubai, Abu Dhabi and none1. Sign in as that user and open Leads, a record by number, Activities and the dashboard.Only Dubai (and child territory) deals appear everywhere, including by direct reference ('Record not found.' for others); creating a deal outside gives 'This record falls outside the territories you work.'; admins and users with no territory rows are not limited.

Duplicate review

ActionWhenWhat you doWhat happens
Dismiss a candidateOpen candidate1. Press Not the same and give a reason.State dismissed with note, reviewer and time; the candidate leaves the Open tab and shows under dismissed; an event 'duplicate.dismissed' is logged on the lead.
Link the lead to the matching customerOpen candidate with a customer match1. Press Link to customer.The lead is linked to that customer (no new party), candidate state linked, other open customer candidates of that lead are dismissed with 'Linked to another customer'.
Only customer matches can be linkedCandidate whose match is another lead1. (API) resolve with action link.Refused: 'Only a customer match can be linked. Merge duplicate leads from the lead itself.' Resolving twice: 'This candidate was already linked.'; a bad action: 'Dismiss it or link it.'

Import leads

ActionWhenWhat you doWhat happens
Import a file with good, repeated and bad rowsFile of 5 rows: 3 valid, 1 repeating an existing source + external id, 1 with no name or contact; default source 'Expo 2026'1. CRM > Leads > Import leads > type default source > Import a file.
2. Open the new log line.
Log shows Rows 5, Created 3, Duplicates 1, Rejected 1; per row: created with CRM number, duplicate 'Expo EX-77 is already CRM-00000n.' (and a duplicate-review candidate), rejected 'Needs a name and a way to reach them.' Created leads sit in the first non-qualification stage, owner = importer, market business, source from the row or default.
Same file twiceFile already imported once with external ids1. Import the same file again.Created 0, Duplicates = every row that had an external id; no second lead per id.
Import limits and formatEmpty file, a 5,001-row file, an unknown-header file, an 11 MB file1. Try each.'The file is empty.'; 'Import at most 5000 rows at a time.'; 'No known columns. Use headers such as title, organization, contact, email, phone, source, external_id.'; 'Import files may be at most 10 MB.' Excel (.xlsx) reads the first sheet.
Imported leads are placed by rulesAt least one active assignment rule; no team chosen1. Import leads.Each lead is placed by the rules or queued; with no active rule the importer owns them. Hand-made leads are not run through the rules.

Campaign responses

ActionWhenWhat you doWhat happens
Responses are recorded once per source idCampaign 'GITEX'; feed sends 3 responses, one id repeated1. Post the responses (API; feeds do this).
2. Post the same batch again.
First: added 3 (or 2 with one repeated id counted as repeated); second: added 0, repeated 3. A response with neither e-mail nor phone: 'Response 1 needs an e-mail or a phone number.' Batches over 1,000 refused: 'Send from 1 to 1000 responses.'
Hand a response off to salesNew response with e-mail khalid@alnoor.example; an open lead has that e-mail1. CRM > Leads > Campaign responses > Hand off to sales.The response is linked to the existing lead (state handed_off). With no match a new lead is captured, attributed to the campaign (source 'Campaign'), first non-qualification stage, owner = you.
A response never implies consentLead captured from a click1. Open Timeline & consent of that lead.
2. Try to schedule a marketing e-mail activity.
Consent column says nothing is recorded; the marketing activity is refused until consent with evidence is recorded in the register.
Ignore a responseNew response1. Press Ignore.State ignored; handling an already dealt response: 'This response was already dealt with.'

Connectors

ActionWhenWhat you doWhat happens
Authorise a connector and see its key onceUser with crm.configure1. Connectors > Code MAIL, Name 'Sales mailbox', Source E-mail > Authorise connector.Connector listed On with authoriser and time; a card shows 'POST /api/v1/crm-hooks/<key>' once ('Copy this key now - it is not shown again'); only a SHA-256 of the key is stored.
An inbound event is logged on the matching dealConnector MAIL; open deal with e-mail khalid@alnoor.example1. POST the hook with event_id 'e1', type email, occurred_at, participants ['khalid@alnoor.example'], subject 'Quote question'.
2. Open the deal Communication tab.
Answer status logged; one completed activity (kind email, outcome 'Logged from Sales mailbox (in)') is added to the deal and shows on Communication and in the timeline; sending the same event_id again answers 'duplicate' and writes nothing.
An unmatched event waits for a personEvent from an address no open deal has1. Post the event.
2. Communications > Not matched > Link to a record > CRM-000012.
Event shows under Not matched; linking creates the completed activity on that record; linking a record already linked: 'This communication is already on a record.'
Switch off and rotateActive connector1. Switch off, post an event.
2. Switch on, press New key, post with the old key.
Off: hook answers 401 'Unknown or switched-off connector.'; New key shows a new key once and the old key stops working; switching on records the person as authoriser again.
Connector event validationActive calendar connector1. Post without event_id, with type email, with a 2-day duration.'Send the source's event id.'; 'A calendar connector sends meeting events.'; 'Duration is whole seconds up to a day.'

Products tab

ActionWhenWhat you doWhat happens
Product lines drive expected value and marginOpportunity with no product lines1. Add 4 x Product A, indicative price 1,250, unit cost 800.
2. Add 2 x Product B, price 3,000, cost 2,000.
Line amounts 5,000 and 6,000; Expected value becomes 11,000.00 (replaces the typed value), Expected cost 7,200.00, Margin 3,800.00 = 34.55%. Removing line B gives 5,000 / 3,200 / 1,800 = 36%. The card says it is worked out from the product lines.
Product line rulesProducts tab1. Add a line with quantity 0.
2. Add a line with no product and no description.
'Enter a quantity above zero.' and 'Choose a product or describe what they want.'; lines on a closed deal: 'Reopen and unarchive the record before changing it.'

Competitors tab

ActionWhenWhat you doWhat happens
Record a competitor once and the buying rolesCompetitors master has 'Rival Interiors'1. Add the competitor (price Cheaper than us, outcome Still competing).
2. Add it again.
3. Add a buying role Fatima / Economic buyer / High / Supporter.
Second add: 'This competitor is already on the deal.'; role row appears; each change raises the deal version and logs an event.
ActionWhenWhat you doWhat happens
Merge two recordsSurvivor CRM-1 and source CRM-2, both open, different phones, same customer; both revisions current1. Merge panel: reference CRM-2 > Compare.
2. Keep this record's for all but Keep the other for Phone.
3. Merge with a reason.
Survivor takes the other's phone; activities, products, competitors, buying roles, quotations, responses and duplicate reviews move to it (a competitor on both stays once); CRM-2 becomes status merged, archived, pointing at CRM-1; lineage (choices, before-images, moved counts) is stored; both records get a merge event; nothing is deleted.
Stale merge is refusedSomeone edited CRM-2 after you loaded it1. Merge using the old revision.409: 'CRM-2 changed since you opened it. Reload both and merge again.' Neither record changes. Different customers with no choice: 'The two records name different customers; choose which one the merged record keeps.'
Record consent from CRMMarketing register installed; contact has e-mail1. Consent panel > channel email, purpose newsletter, status Opted in, no evidence > Save.
2. Add evidence 'Signed form' > Save.
1: 'Say where the consent came from - a form, a signed paper, a recorded call.' 2: row appears with source 'CRM CRM-00000n' and an event history. With no register: 'No consent register is installed (Marketing).'

Forecast

ActionWhenWhat you doWhat happens
Open pipeline arithmeticPeriod 2026-10: deal A 1,000 at 25% (pipeline), deal B 500 at 50% (commit), deal C 200 omitted; all open and closing in October1. CRM > Reporting > Forecast, period 2026-10.Gross open pipeline 1,700.00; Weighted 500.00 (250 + 250; omitted left out); Commit category 500.00; range 2026-10-01 to 2026-10-31. Periods: 2026-Q4 = Oct-Dec, 2026 = whole year; bad text: 'Use a period such as 2026-10, 2026-Q4 or 2026.'
Submit and re-submit a forecastRep A with the pipeline above1. Submit my forecast with commit blank and notes.
2. Change a deal and submit again.
v1 locked with the deals, probabilities and exchange rate (1); commit = 500 when left blank; the second submission is v2 and v1 becomes Superseded; submissions are never edited; the same request key twice returns the first.
Manager adjustmentManager M (team North) and rep A's current submission with commit 5001. As M open the submission > Adjustment -100, reason 'Deal C at risk' > Add manager adjustment.Adjustment listed with manager, time and reason; the submitted figure stays 500.00, adjustment -100.00, Total 400.00. Zero: 'An adjustment changes the figure; enter a positive or negative amount.' A superseded version: 'Adjust the latest version; this one was superseded.'
Nobody adjusts their own forecastManager submits their own forecast1. Try to adjust it.Refused: 'A manager other than the person who submitted it adjusts a forecast.'; a non-manager: 'Only a manager of the team (or an administrator) adjusts this forecast.'
Quota attainmentApproved quota 500,000 for rep A, 2026-Q4; A won 125,000 in that quarter; A's latest commit 300,0001. Forecast page, period 2026-Q4, read Quotas.Target 500,000.00, Won 125,000.00, Attainment 25%, Committed 300,000.00. Draft quotas are not listed; 'No approved quota for this period.' otherwise.

Quotas

ActionWhenWhat you doWhat happens
Quota approval by a second personQuota Q4-NORTH, 500,000 AED for 2026-Q4 created by user X1. As X approve (API: POST quotas/{id}/approve).
2. As Y approve.
3. Edit the amount and look at the state.
X refused: 'Somebody other than the person who set the quota approves it.'; Y: state approved; an approved already: 'This quota is already approved.'; changing the amount puts it back to draft and raises the version. No Approve button exists in the screen.

CRM analytics

ActionWhenWhat you doWhat happens
Closed-cohort win rateIn the period: 2 won, 1 lost, 4 open, 3 disqualified1. CRM > Reporting > CRM analytics for the period.Win rate = 2 / (2 + 1) = 66.67%; the basis line says disqualified and open deals are not in the denominator and a reopened deal counts once per closed episode. Won / lost values are the final amounts of those episodes.
Sales cycle, conversion and agingWon deal created 1 Oct and won 21 Oct; 10 leads captured, 4 qualified; stage with expected days 14 holds a deal for 20 days1. Read Sales cycle, Conversion and Stage aging.Cycle 20.0 days; qualification rate 40%; aging shows the stage with average / oldest days and 'over' count 1. Attribution (first touch) counts captured and won by source and campaign. End before start: 'The end is before the start.'
Channel partner shareWon deal 80,000 AED naming reseller R at 15%1. Open the Channel partners section.R: won 1, won value 80,000.00, share 12,000.00 (80,000 x 15%); open deals add to open value.

Account plans progress

ActionWhenWhat you doWhat happens
Account plan progressPlan for customer X, 2026, target 1,000,000, goals: 1 done of 3; X won 250,000 in the year, 2 open deals worth 90,0001. CRM > Reporting > Account plans.Attainment 25%, won 250,000, open deals 2 / 90,000, goals done 1 / 3. Draft and closed plans are not shown.

Pipeline by stage

ActionWhenWhat you doWhat happens
Stage reportOpen opportunities: New 2 x 10,000 at 10%, Proposal 1 x 30,000 at 60%; one omitted1. Reporting > Pipeline by stage > Run report with no dates.New: 2 opportunities, expected 20,000.00, weighted 2,000.00 (omitted deals are left out of weighted only); Proposal 1, 30,000.00, 18,000.00. Archived deals are not counted. Start after end: 'Report end date must not precede start date.'

Monthly forecast

ActionWhenWhat you doWhat happens
Monthly forecast reportOpen opportunities closing Oct (value 40,000, weighted 14,000, commit 20,000) and Nov1. Reporting > Monthly forecast.One row per expected-close month with count, expected, weighted and commit value; omitted deals excluded.

Loss analysis

ActionWhenWhat you doWhat happens
Loss analysis reportThree lost deals: two with reason text 'Price' (10,000 and 5,000), one 'No budget'1. Reporting > Loss analysis.Price: 2 deals, 15,000.00; No budget: 1. Grouped on the reason text written at closing.

Pipeline stages

ActionWhenWhat you doWhat happens
Create a stage with entry criteria and allowed movesAdmin; pipeline MAIN has stages New, Qualified1. Configuration > Pipeline stages > New stage 'Site survey', sequence 25, probability 30, expected days 14.
2. Tick Budget as entry criterion, May move to Qualified.
3. Save.
Stage appears in sequence order; the pipeline's criteria version is bumped when criteria or allowed moves of an existing stage change; deals entering later record that version.
Archive a stage with open dealsStage holds an open deal1. Untick Active and Save.Refused: 'Move open records to another stage before archiving this stage.' A stage with deals cannot be moved to another pipeline either.
Initialize CRM for a new companyCompany with no stages; admin opens CRM1. Press Initialize CRM.Four default stages are created in the default pipeline MAIN: New 10%, Qualified 30%, Proposal 60%, Negotiation 80% (all but New require qualification), plus the default loss reasons (Price, Lost to a competitor, No budget, No response, No decision, Not a fit, Invalid or spam).

Sales teams

ActionWhenWhat you doWhat happens
Team membership is record scopeRep A is on team North and sees its deals1. Admin removes A from North and saves.
2. A reloads their list in the same session.
A loses access to North's deals at once (permission version bumped), without signing out. A deal's visibility for non-admins follows active-team membership; a Read only member sees but cannot change.

Pipelines

ActionWhenWhat you doWhat happens
Only one default pipelinePipelines MAIN (default) and PARTNER1. Open PARTNER > tick Default > Save.PARTNER is default and MAIN's flag is cleared; deals created without naming a pipeline use the default.

Lead scoring

ActionWhenWhat you doWhat happens
Edit scoring rules and re-scorePolicy with rule 'budget gt 0 = 20 points'1. Open Lead scoring > edit the JSON to give 30 points > Save.
2. Re-score (API: POST scoring/rescore).
Policy version goes up (2); existing deals keep their old score until re-scored or next saved; re-score updates every open deal and answers the count. Points outside -1000..1000: 'Rule 1: points must be a whole number from -1000 to 1000.'

Qualification criteria

ActionWhenWhat you doWhat happens
Edit a criterion creates a new versionCriterion 'Budget confirmed' v11. Change Data type or Required to qualify and save.
2. Change only the Arabic name.
Version becomes 2 for the first; the second leaves it at 1 (only meaning-changing fields are versioned). Deals show 'v2' in Criteria & score.

Loss reasons

ActionWhenWhat you doWhat happens
Reasons are archived, not deletedReason 'Price' used by a closed deal1. Open Price > untick Active > Save.Archived reason is no longer offered in the close dialog but the closed deal keeps its label.

Territories

ActionWhenWhat you doWhat happens
Most specific territory winsTerritories UAE (country only), Dubai (city Dubai, child of UAE), Sharjah (city Sharjah)1. Create leads: UAE/Dubai, UAE/Ajman, UAE/Sharjah.Territories: Dubai, UAE, Sharjah. A territory outside its Valid from / to dates is ignored; a loop in Parent: 'A territory cannot sit inside itself.'

Activity types

ActionWhenWhat you doWhat happens
Activity type defaults flow to the activityType 'Site visit': channel meeting, 60 min, reminder 120, escalate 48 h1. Schedule an activity choosing that type with a due time 09:00 and no other values.Channel meeting, duration 60, remind_at 07:00 local on the same day, escalate_at due + 48 h; values typed on the activity override the type.

Masters

ActionWhenWhat you doWhat happens
Archive instead of delete and no code changeAny master with records1. Open a record; code box is read-only.
2. Untick Active.
Code cannot change; the record shows Archived and stays in history. There is no Delete on masters.

CRM feature switches

ActionWhenWhat you doWhat happens
Turn a feature offAdmin (company.manage); Lead imports on1. Apps > CRM > Features > turn off Lead imports.
2. Open CRM > Leads.
3. Try to import by API.
Import leads menu entry disappears; the import request is refused with capability_disabled; the existing import logs stay readable. The same applies to Forecast and quotas, Lead scoring, Campaigns and responses, and Duplicate review.