Sales decision workflow with Jev
Opportunity stage and quote PDFs live in the CRM. Jev can set a picklist from unstructured notes: is this a next-step, a risk, a closed-won hint, a discount promise that violates policy? Workflows fire after the field write. Jev does not host the Opportunity.
This unofficial page is the decision workflow slice of the sales note labeling pack. Intent: apply the Jev (TypeSafe System One) decision model to sales note labeling decision workflow. Primary search language: Sales Jev decision workflow. Confirm patterns on docs.typesafe.ai. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.
Independent angle (cover ≠ clone): CRM owns objects and SLAs; Jev labels messy call/email notes (next step, risk, discount-policy). Weighted scores stay in code — apply the composite-scoring win (not a Salesforce-IA or lead-score recipe clone). Fan-out extra atoms on one request; open a second HTTP call only for a new artifact, not the same state.
Sales use-case context
Sales note labeling is a workflow, not a chat. Assemble a narrow state, ask the primitives below, and let the CRM field writer branch. TypeSafe’s docs say a good question is a snap decision a knowledgeable person could make in a few seconds — not an open-ended analysis of the call or email note + policy excerpt.
Hub: Use cases. Compare, when the other tool is the real job: CRM workflows.
Decision Workflow inputs
Keep only fields the questions name:
{
"note": { "id": "N-88", "text": "CFO asked for 30% off if we sign this week. Legal still redlining DPA." },
"opp": { "stage": "negotiation", "list_discount_cap_pct": 15 },
"policy": { "discount": "Promises above list_discount_cap_pct need deal-desk, not AE verbal." }
}
Point instructions at note.text, policy.discount, opp.stage. Drop the entire activity timeline; other opportunities’ notes.
Decision signals and actions
| Id | Type | Job |
|---|---|---|
label |
Choice | next_step / risk / closed_hint / discount_promise / other |
next_step_clarity |
Score | How concrete is the stated next step? |
discount_violation |
Noul | Does the note promise a discount above the cap language (compare the number in code)? |
All of these share state and run in parallel. Code owns the graph:
def sales_label(ans, promised_pct, cap_pct):
if promised_pct is not None and promised_pct > cap_pct:
return "deal_desk" # arithmetic in code
if ans["discount_violation"].noul >= T_DISC:
return "deal_desk"
if ans["label"].confidence < FLOOR or ans["label"].choice == "other":
return "manager_review"
return "writeback_" + ans["label"].choice
Do not treat a Noul of 0.5 as a “medium” sales note labeling score — it means yes and no are equally likely. Conjunctions stay in your code.
Guardrails and escalation
TypeSafe’s confidence-gated examples use a lower bar for recoverable reads than for irreversible actions. Those numbers are illustrations. For sales note labeling, treat page_deal_desk as the high bar (paging deal-desk or sending a customer quote change). Tune on labels — see offline evaluation.
Low confidence, label == other, or a policy miss → human or safe default; do not page deal-desk or change quotes from a guess.
Evaluation and rollout notes
Shadow: Write Jev label to a shadow field.
Canary: Write next_step only for one segment; discount holds stay manager-approved.
Pin jev-1.13.0 (the versioned id) after you fit thresholds. jev-latest and the marketing line jev-1.13 can move. Log the response model. TypeSafe’s published list price for jev-1.13 is $0.042 per million input tokens (vendor claim — confirm on the models page); output tokens are free on that same page. Unused distractors still bill as input.
Official Python and JavaScript SDKs read TYPESAFE_API_KEY and retry documented 429/529. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.
Pack map
| Slice | Page |
|---|---|
| Graph and primitives | you are here |
What may enter state |
input contracts |
| What to gather first | evidence collection |
| Atomic rules | policy checks |
| Act / review / abstain | confidence thresholds |
| Reviewer payload | human handoff |
| What to persist | audit trail |
| How it breaks | failure modes |
| Labeled replay | evaluation |
| Shadow → canary | production rollout |
FAQ
Does Jev execute the CRM field writer action? No. It returns typed answers. Your CRM field writer code calls queues, models, or humans.
Why several questions in one request? TypeSafe’s fan-out pattern: extra questions are cheap versus another HTTP call. label + clarity + discount_violation in one call. If you also composite ICP/intent Scores, do that on the lead-scoring pack — weights in app code.
Where is the rest of the Sales pack? Start with Sales input contracts and Sales confidence thresholds. Cluster hub: Use cases.
Is this the same as lead scoring? No. Lead scoring composites ICP/intent Scores. This pack labels notes on an existing Opp. Link them; do not merge slugs.
Can Jev update Amount? Not from language alone. Extract numbers in code; CRM math stays in the CRM.
What this page does not claim
- Not a CRM or CPQ product.
- No invented pipeline lift.
- Not official TypeSafe.
- Official TypeSafe status, or that jev.pro issues API keys.
- That a schema-constrained answer is automatically factually correct.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai.
Primary documentation: https://docs.typesafe.ai. Hub: Use cases.
Sources
Public TypeSafe or adjacent documentation only. No private claims.