{"ok":true,"decision_protocol_version":"decision_protocol_v1","decision_record_version":"decision_record_v1","decision_pattern_registry_version":"decision_pattern_registry_v1","source":"first_party","status":"configured","count":4,"patterns":[{"decision_pattern_version":"decision_pattern_v1","pattern_id":"pricing_exception","name":"Pricing Exception Gate","version":"2026-05-22","category":"revops","status":"active","summary":"Approve, block, or route a pricing or discount exception before CRM or billing state changes.","policy_id":"pricing_exception","recommended_policy_version":"v3","source":"decide:first_party/patterns/pricing_exception","tags":["pricing","discounts","crm","billing","revops"],"use_cases":["Discount approval before billing mutation","Quote exception routing before CRM update","Owner approval and margin-floor checks"],"required_context_fields":["workflow","source_record_id","requested_action"],"recommended_context_fields":["discount_percent","margin_floor","owner_rule","target_system","target_object_id","mutation","expires_at"],"evidence_codes":["MARGIN_FLOOR_OK","OWNER_RULE_VERIFIED","DISCOUNT_WITHIN_POLICY"],"decision_request_template":{"question":"Approve pricing exception before CRM or billing update?","mode":"single","response_view":"full","context":{"workflow":"pricing_exception","source_record_id":"deal_1042","requested_action":"approve_discount","target_system":"billing","target_object_id":"sub_1042","mutation":"discount.create"}},"outcome_template":{"outcome_status":"succeeded","action_taken":"approve_discount","action_executed":true,"target_system":"billing","mutation":"discount.create","observed_metrics":{"margin_after_discount":0.182}},"crm_sync_template":{"crm_provider":"salesforce","crm_object_type":"Opportunity","field_mapping":{"decision_id":"Decide_ID__c","verdict":"Decision_Verdict__c","record_hash":"Decision_Record_Hash__c","receipt_hash":"Decision_Receipt_Hash__c","verify_url":"Decision_Verify_URL__c"}},"sdk_examples":["sdk/examples/pricing-exception.js","sdk/examples/billing-discount-gate.js","sdk/examples/crm-writeback.js"],"pattern_hash":"54fb34325131bd0982a6a14660c331499d4a92ee11747d91099e3b4186921b9c"},{"decision_pattern_version":"decision_pattern_v1","pattern_id":"refund_review","name":"Refund Review Gate","version":"2026-05-22","category":"support","status":"active","summary":"Route a refund request before support, billing, or automation issues money movement.","policy_id":"refund_review","recommended_policy_version":"v1","source":"decide:first_party/patterns/refund_review","tags":["refunds","support","billing","risk"],"use_cases":["Refund approval before billing credit","Manual review for unclear policy matches","Support workflow evidence capture"],"required_context_fields":["workflow","source_record_id","requested_action"],"recommended_context_fields":["vendor","days_since_purchase","region","plan","amount","customer_segment"],"evidence_codes":["WITHIN_WINDOW","OUTSIDE_WINDOW","NO_REFUNDS","UNSUPPORTED_VENDOR"],"decision_request_template":{"question":"Approve refund before billing credit?","mode":"single","response_view":"full","context":{"workflow":"refund_review","source_record_id":"ticket_1042","requested_action":"issue_refund","target_system":"billing","mutation":"refund.create"}},"outcome_template":{"outcome_status":"reviewed","action_taken":"manual_review","action_executed":false,"target_system":"support"},"sdk_examples":["sdk/examples/webhook-queue-gate.js","sdk/examples/outcome-tracking.js"],"pattern_hash":"95b94d313ee58520be1009c1ed7dade16e5026d8cb191ee2a65bcae12e85fbea"},{"decision_pattern_version":"decision_pattern_v1","pattern_id":"agent_action_gate","name":"Agent Action Gate","version":"2026-05-22","category":"agents","status":"active","summary":"Authorize an agent-proposed action before the agent mutates a tool, workspace, account, or external system.","policy_id":"agent_action_gate","recommended_policy_version":"v1","source":"decide:first_party/patterns/agent_action_gate","tags":["agents","automation","tools","execution"],"use_cases":["Agent tool execution authorization","Autonomous workflow side-effect review","High-impact action hold before mutation"],"required_context_fields":["workflow","source_record_id","requested_action"],"recommended_context_fields":["agent_id","tool_name","target_system","target_object_id","mutation","risk_level"],"evidence_codes":["ACTION_BOUND","OWNER_RULE_VERIFIED","RISK_ACCEPTABLE"],"decision_request_template":{"question":"Authorize this agent action before execution?","mode":"single","response_view":"full","context":{"workflow":"agent_action_gate","source_record_id":"run_1042","requested_action":"execute_tool","target_system":"internal_tool","mutation":"tool.execute"}},"outcome_template":{"outcome_status":"succeeded","action_taken":"execute_tool","action_executed":true,"target_system":"internal_tool"},"sdk_examples":["sdk/examples/agent-action-gate.js","sdk/examples/outcome-tracking.js"],"pattern_hash":"5bd007b989f9dd3af0c5b0612dcdc0d0effe7f193ad2ef090014f6b87912bf28"},{"decision_pattern_version":"decision_pattern_v1","pattern_id":"crm_writeback_gate","name":"CRM Write-Back Gate","version":"2026-05-22","category":"crm","status":"active","summary":"Call Decide before a CRM update and record a CRM Sync receipt after Decision Record fields are written back.","policy_id":"crm_writeback_gate","recommended_policy_version":"v1","source":"decide:first_party/patterns/crm_writeback_gate","tags":["crm","salesforce","hubspot","writeback","audit"],"use_cases":["Write Decision Record fields onto Salesforce opportunities","Write Decision Record fields onto HubSpot deals","Prove CRM write-back completed without storing CRM credentials"],"required_context_fields":["workflow","source_record_id","requested_action","target_system","target_object_id"],"recommended_context_fields":["crm_provider","crm_object_type","crm_object_id","mutation","field_mapping"],"evidence_codes":["CRM_OBJECT_BOUND","DECISION_FIELDS_MAPPED","WRITEBACK_RECORDED"],"decision_request_template":{"question":"Approve CRM update before source record mutation?","mode":"single","response_view":"full","context":{"workflow":"crm_writeback_gate","source_record_id":"006xx000004TmiQAAS","requested_action":"update_crm_record","target_system":"salesforce","target_object_id":"006xx000004TmiQAAS","mutation":"Opportunity.update"}},"crm_sync_template":{"sync_status":"written","sync_direction":"writeback","crm_provider":"salesforce","crm_object_type":"Opportunity","field_mapping":{"decision_id":"Decide_ID__c","verdict":"Decision_Verdict__c","action":"Decision_Action__c","record_hash":"Decision_Record_Hash__c","receipt_hash":"Decision_Receipt_Hash__c","verify_url":"Decision_Verify_URL__c"}},"sdk_examples":["sdk/examples/crm-writeback.js"],"pattern_hash":"598c5a9064138aa279c26eb5328eb7e006b669beb4ae7c5626ae80fc42b23fd4"}],"registry_hash":"f8ea52423e44aa02921e6d2bfd3113912e76161a74d3a27648f0a8482e8f5ca5","endpoints":{"policy_patterns":"/api/decision/policy-patterns","pattern_catalog":"/resources/patterns","status":"/api/decision/status","decide":"/api/decide"}}