{"id":"sales-transcript-to-crm-json","audience":"sales","category":"sales-work","technique":"verification","track":"sales","level":"advanced","title":"Turn a call transcript into a CRM update as a JSON block","free":false,"task":"Your CRM takes updates as JSON. From this call, write exactly 1 code block with these keys only: stage, amount, close_date, next_step, risks. Stage must be one of Discovery, Evaluation, Proposal, Negotiation. Amount is the final number agreed, as a number. If the buyer didn't commit to a close date, set close_date to null rather than using your own hope. Under 15 words outside the block.","materialLabel":"Your notes (attached to your prompt automatically)","material":"CALL TRANSCRIPT EXCERPT - Kessler Dental Labs, Nov 6. Rep: Ava Moss. Buyer: Raj Patel (COO)\n\nRaj: We've seen the demo, the team liked it, and I've got your proposal here.\nAva: Great. Any questions on the proposal?\nRaj: The number. $72k is above what I can take to our owner. If you can get to $64k with the 2-year term, I can work with that.\nAva: I talked to my manager this morning, and $64k with a 2-year term works for us.\nRaj: OK good. I still need our IT guy, Sven, to sign off on the data export piece. He's out until the 17th.\nAva: Understood. Could we aim to sign by the end of the month?\nRaj: I really can't promise a date until Sven's looked at it. Let's talk after he's back.\nAva: Fair. I'll send the revised proposal at $64k today and book a call with you and Sven for the 18th.\nRaj: Sounds good.\n\nAva's private note after the call: \"Hoping to close Nov 28!!\"\nStage before the call: Proposal.","rules":[{"type":"codeBlocks","count":1},{"type":"maxProseWords","max":15}],"mistakes":[{"title":"Prose instead of data","why":"The AI writes a summary your CRM can't import.","fix":"Say: \"Output exactly 1 JSON code block with keys stage, amount, close_date, next_step, risks.\"","checks":["codeBlocks","r0"]},{"title":"Using the hoped-for date","why":"The AI turns the rep's \"hoping to close Nov 28\" into a close date.","fix":"Add: \"If the buyer didn't commit to a date, close_date is null.\"","checks":["r2"]},{"title":"Using the first number","why":"The transcript has $72k and $64k; the AI may grab the first or write \"$64k\" as text.","fix":"Add: \"amount = the final agreed number, as a plain number like 64000.\"","checks":["r1"]},{"title":"Free-form stages","why":"The AI invents stages like \"Late stage\".","fix":"Add: \"stage must be one of Discovery, Evaluation, Proposal, Negotiation.\"","checks":["r0"]},{"title":"Chatty wrapper","why":"The AI explains its choices around the block.","fix":"Add: \"Under 15 words outside the block.\"","checks":["maxProseWords"]}],"promptHints":[{"label":"Asks for JSON","patterns":["json","code block"]},{"label":"Names the keys","patterns":["close_date","next_step","keys"]},{"label":"Handles the missing date","patterns":["null","didn'?t commit","no (firm )?date"]},{"label":"Restricts stage values","patterns":["one of","discovery.{0,40}negotiation"]},{"label":"Limits extra text","patterns":["outside the (code )?block","only the json","no (other )?(text|explanation)"]}],"hint":"Data for a CRM must be exact. Name the keys and allowed values, and tell the AI what to write when the buyer didn't commit.","rubricLabels":["The JSON has exactly the keys stage, amount, close_date, next_step, risks, and stage is Negotiation (they are now negotiating price and terms on a sent proposal)","amount is 64000 as a number (not $72k, and not a string with a dollar sign)","close_date is null (not Nov 28), and risks mentions the IT sign-off from Sven on data export"]}