[{"id": 8, "name": "Odoo Implementation Process", "category": "implementation", "description": "Discovery, scope, design, configuration, migration, UAT loop, training, go-live and hypercare", "odoo_apps": "CRM, Project", "diagram": {"canvas": {"background": "#ffffff", "grid": true, "snap": true, "orientation": "landscape"}, "nodes": [{"id": "n_start", "label": "Start", "x": 70, "y": 210, "width": 92, "height": 64, "type": "start", "description": "Begin implementation process", "role": "GM Team"}, {"id": "n_discovery", "label": "Discovery", "x": 240, "y": 190, "type": "step", "description": "Understand business goals", "role": "Business Analyst"}, {"id": "n_scope", "label": "Scope", "x": 430, "y": 190, "type": "step", "description": "Define scope and approach", "role": "Consultant"}, {"id": "n_design", "label": "Design", "x": 620, "y": 190, "type": "step", "description": "Process design and solution", "role": "Business Analyst"}, {"id": "n_configure", "label": "Configure", "x": 810, "y": 190, "type": "step", "description": "Odoo configuration and customization", "automation": "assisted"}, {"id": "n_data", "label": "Data Migration", "x": 1000, "y": 190, "type": "data", "description": "Clean, map and migrate data from legacy systems to Odoo.", "role": "Data Lead", "automation": "assisted"}, {"id": "n_uat", "label": "UAT Passed?", "x": 1198, "y": 170, "type": "decision", "approval": true, "description": "Confirm users have accepted the configured process."}, {"id": "n_training", "label": "Training", "x": 1395, "y": 190, "type": "manual_step", "description": "User training and workshops"}, {"id": "n_prep", "label": "Go-Live Preparation", "x": 1395, "y": 330, "type": "document", "description": "Final checks and go-live plan"}, {"id": "n_live", "label": "Go-Live", "x": 1395, "y": 470, "type": "step", "description": "System live and support"}, {"id": "n_hypercare", "label": "Hypercare", "x": 1395, "y": 610, "type": "manual_step", "description": "Stabilize and resolve issues"}, {"id": "n_handover", "label": "Handover", "x": 1395, "y": 750, "type": "step", "description": "Transition to support team"}, {"id": "n_end", "label": "End", "x": 1395, "y": 890, "width": 92, "height": 64, "type": "end"}], "edges": [{"id": "e1", "source": "n_start", "target": "n_discovery", "connectorType": "sequence"}, {"id": "e2", "source": "n_discovery", "target": "n_scope", "connectorType": "sequence"}, {"id": "e3", "source": "n_scope", "target": "n_design", "connectorType": "sequence"}, {"id": "e4", "source": "n_design", "target": "n_configure", "connectorType": "sequence"}, {"id": "e5", "source": "n_configure", "target": "n_data", "connectorType": "sequence"}, {"id": "e6", "source": "n_data", "target": "n_uat", "connectorType": "sequence"}, {"id": "e7", "source": "n_uat", "target": "n_training", "label": "Yes", "sourcePort": "right", "targetPort": "left", "connectorType": "sequence"}, {"id": "e8", "source": "n_uat", "target": "n_design", "label": "No", "sourcePort": "bottom", "targetPort": "bottom", "style": "orthogonal", "connectorType": "sequence"}, {"id": "e9", "source": "n_training", "target": "n_prep", "sourcePort": "bottom", "targetPort": "top", "connectorType": "sequence"}, {"id": "e10", "source": "n_prep", "target": "n_live", "sourcePort": "bottom", "targetPort": "top", "connectorType": "sequence"}, {"id": "e11", "source": "n_live", "target": "n_hypercare", "sourcePort": "bottom", "targetPort": "top", "connectorType": "sequence"}, {"id": "e12", "source": "n_hypercare", "target": "n_handover", "sourcePort": "bottom", "targetPort": "top", "connectorType": "sequence"}, {"id": "e13", "source": "n_handover", "target": "n_end", "sourcePort": "bottom", "targetPort": "top", "connectorType": "sequence"}]}}, {"id": 1, "name": "Lead to Sale", "category": "sales", "description": "Lead -> Quote -> Sale -> Delivery", "odoo_apps": "CRM, Sales", "diagram": {"nodes": [{"id": "n1", "label": "Lead", "x": 80, "y": 170, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Qualify", "x": 280, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Quotation", "x": 480, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Approved?", "x": 680, "y": 170, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Sales Order", "x": 880, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n6", "label": "Delivery", "x": 1080, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n7", "label": "Invoice", "x": 1280, "y": 170, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}, {"id": "e5", "source": "n5", "target": "n6"}, {"id": "e6", "source": "n6", "target": "n7"}]}}, {"id": 2, "name": "Purchase to Pay", "category": "purchase", "description": "Request -> Approval -> PO -> Receipt -> Bill -> Payment", "odoo_apps": "Purchase, Inventory, Accounting", "diagram": {"nodes": [{"id": "n1", "label": "Purchase Request", "x": 80, "y": 170, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Approval", "x": 300, "y": 170, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "RFQ / PO", "x": 520, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Receipt", "x": 740, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Vendor Bill", "x": 960, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n6", "label": "Payment", "x": 1180, "y": 170, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}, {"id": "e5", "source": "n5", "target": "n6"}]}}, {"id": 3, "name": "Invoice Approval", "category": "accounting", "description": "Receive -> Review -> Approve -> Post -> Pay", "odoo_apps": "Accounting, Approvals", "diagram": {"nodes": [{"id": "n1", "label": "Receive Bill", "x": 120, "y": 190, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Review", "x": 340, "y": 190, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Approved?", "x": 560, "y": 190, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Post Bill", "x": 780, "y": 190, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Pay", "x": 1000, "y": 190, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}]}}, {"id": 15, "name": "Quote to Cash Swimlanes", "category": "sales", "description": "Cross-functional quote, delivery, invoicing and payment workflow", "odoo_apps": "CRM, Sales, Project, Accounting", "diagram": {"canvas": {"background": "#ffffff", "grid": true, "snap": true, "orientation": "landscape"}, "nodes": [{"id": "lane_qtc", "label": "Quote to Cash", "x": 40, "y": 80, "width": 1640, "height": 390, "type": "swimlane", "orientation": "horizontal", "headerSize": 120, "headerFill": "#DCEBE4", "fill": "#ffffff", "stroke": "#0B4A3F", "lanes": [{"id": "lane_sales", "label": "Sales", "size": 130, "fill": "#DCEBE4"}, {"id": "lane_delivery", "label": "Delivery", "size": 130, "fill": "#EEF6F1"}, {"id": "lane_finance", "label": "Finance", "size": 130, "fill": "#DCEBE4"}]}, {"id": "q1", "label": "Prepare Quote", "x": 210, "y": 110, "type": "start", "containerId": "lane_qtc", "laneId": "lane_sales", "odoo_app": "Sales", "odoo_model": "sale.order", "automation": "manual", "approval": false}, {"id": "q2", "label": "Customer Review", "x": 430, "y": 110, "type": "document", "containerId": "lane_qtc", "laneId": "lane_sales", "odoo_app": "Sales", "odoo_model": "sale.order", "automation": "assisted", "approval": false}, {"id": "q3", "label": "Approved?", "x": 650, "y": 110, "type": "approval", "containerId": "lane_qtc", "laneId": "lane_sales", "odoo_app": "Sales", "odoo_model": "sale.order", "automation": "manual", "approval": true}, {"id": "q4", "label": "Confirm Order", "x": 870, "y": 110, "type": "step", "containerId": "lane_qtc", "laneId": "lane_sales", "odoo_app": "Sales", "odoo_model": "sale.order", "automation": "assisted", "approval": false}, {"id": "q5", "label": "Deliver Scope", "x": 1090, "y": 240, "type": "manual_step", "containerId": "lane_qtc", "laneId": "lane_delivery", "odoo_app": "Project", "odoo_model": "project.task", "automation": "manual", "approval": false}, {"id": "q6", "label": "Create Invoice", "x": 1310, "y": 370, "type": "document", "containerId": "lane_qtc", "laneId": "lane_finance", "odoo_app": "Accounting", "odoo_model": "account.move", "automation": "assisted", "approval": false}, {"id": "q7", "label": "Payment Posted", "x": 1510, "y": 370, "type": "end", "containerId": "lane_qtc", "laneId": "lane_finance", "odoo_app": "Accounting", "odoo_model": "account.payment", "automation": "assisted", "approval": false}], "edges": [{"id": "qe1", "source": "q1", "target": "q2", "style": "orthogonal"}, {"id": "qe2", "source": "q2", "target": "q3", "style": "orthogonal"}, {"id": "qe3", "source": "q3", "target": "q4", "style": "orthogonal"}, {"id": "qe4", "source": "q4", "target": "q5", "style": "orthogonal"}, {"id": "qe5", "source": "q5", "target": "q6", "style": "orthogonal"}, {"id": "qe6", "source": "q6", "target": "q7", "style": "orthogonal"}]}}, {"id": 4, "name": "Invoice to Collection", "category": "accounting", "description": "Invoice → Validate → Send → Follow-up → Collect", "odoo_apps": "Accounting", "diagram": {"nodes": [{"id": "n1", "label": "Create Invoice", "x": 100, "y": 190, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Validate", "x": 330, "y": 190, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Send", "x": 560, "y": 190, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Follow-up", "x": 790, "y": 190, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Collected", "x": 1020, "y": 190, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}]}}, {"id": 13, "name": "Quote to Cash", "category": "sales", "description": "Quote -> Approval -> Order -> Delivery -> Invoice -> Payment", "odoo_apps": "CRM, Sales, Accounting", "diagram": {"nodes": [{"id": "n1", "label": "Prepare Quote", "x": 80, "y": 170, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "Sales", "odoo_model": "sale.order", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Customer Review", "x": 300, "y": 170, "type": "document", "description": "", "department": "", "role": "", "odoo_app": "Sales", "odoo_model": "sale.order", "automation": "assisted", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Approved?", "x": 520, "y": 170, "type": "approval", "description": "", "department": "", "role": "", "odoo_app": "Sales", "odoo_model": "sale.order", "automation": "manual", "approval": true, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Confirm Order", "x": 740, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "Sales", "odoo_model": "sale.order", "automation": "assisted", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Deliver Work", "x": 960, "y": 170, "type": "manual_step", "description": "", "department": "", "role": "", "odoo_app": "Project", "odoo_model": "project.project", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n6", "label": "Invoice", "x": 1180, "y": 170, "type": "document", "description": "", "department": "", "role": "", "odoo_app": "Accounting", "odoo_model": "account.move", "automation": "assisted", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n7", "label": "Payment Received", "x": 1400, "y": 170, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "Accounting", "odoo_model": "account.payment", "automation": "assisted", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}, {"id": "e5", "source": "n5", "target": "n6"}, {"id": "e6", "source": "n6", "target": "n7"}]}}, {"id": 5, "name": "Expense Approval", "category": "accounting", "description": "Submit -> Manager -> Finance -> Post -> Reimburse", "odoo_apps": "Expenses, Accounting", "diagram": {"nodes": [{"id": "n1", "label": "Submit Expense", "x": 100, "y": 190, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Manager Approval", "x": 340, "y": 190, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Finance Review", "x": 580, "y": 190, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Post", "x": 820, "y": 190, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Reimburse", "x": 1060, "y": 190, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}]}}, {"id": 6, "name": "Employee Onboarding", "category": "hr", "description": "Offer → Contract → Access → Equipment → Training → Active", "odoo_apps": "Employees", "diagram": {"nodes": [{"id": "n1", "label": "Offer", "x": 70, "y": 170, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Contract", "x": 270, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "System Access", "x": 470, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Equipment", "x": 670, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Training", "x": 870, "y": 170, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n6", "label": "Active", "x": 1070, "y": 170, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}, {"id": "e5", "source": "n5", "target": "n6"}]}}, {"id": 14, "name": "Customer Onboarding", "category": "sales", "description": "Won deal -> Kick-off -> Data -> Setup -> Training -> Live", "odoo_apps": "CRM, Project, Portal", "diagram": {"nodes": [{"id": "n1", "label": "Won Deal", "x": 90, "y": 170, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "CRM", "odoo_model": "crm.lead", "automation": "assisted", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Kick-off", "x": 310, "y": 170, "type": "manual_step", "description": "", "department": "", "role": "", "odoo_app": "Project", "odoo_model": "project.task", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Collect Data", "x": 530, "y": 170, "type": "data", "description": "", "department": "", "role": "", "odoo_app": "Project", "odoo_model": "project.task", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Configure Workspace", "x": 750, "y": 170, "type": "automated_step", "description": "", "department": "", "role": "", "odoo_app": "Project", "odoo_model": "project.task", "automation": "assisted", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Train Users", "x": 970, "y": 170, "type": "manual_step", "description": "", "department": "", "role": "", "odoo_app": "Project", "odoo_model": "project.task", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n6", "label": "Go Live", "x": 1190, "y": 170, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "Project", "odoo_model": "project.project", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}, {"id": "e5", "source": "n5", "target": "n6"}]}}, {"id": 7, "name": "Project Delivery", "category": "project", "description": "Sale -> Kick-off -> Configure -> UAT -> Go-Live -> Support", "odoo_apps": "Sales, Project", "diagram": {"nodes": [{"id": "n1", "label": "Sales Order", "x": 70, "y": 180, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Kick-off", "x": 290, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Configure", "x": 510, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "UAT", "x": 730, "y": 180, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Go-Live", "x": 950, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n6", "label": "Support", "x": 1170, "y": 180, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}, {"id": "e5", "source": "n5", "target": "n6"}]}}, {"id": 9, "name": "Odoo Migration", "category": "implementation", "description": "Assess → Map → Trial → Reconcile → UAT → Cutover → Validate", "odoo_apps": "Project, Accounting", "diagram": {"nodes": [{"id": "n1", "label": "Assessment", "x": 70, "y": 160, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Mapping", "x": 280, "y": 160, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Trial Migration", "x": 490, "y": 160, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Reconcile", "x": 700, "y": 160, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "UAT", "x": 910, "y": 160, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n6", "label": "Cutover", "x": 1120, "y": 160, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n7", "label": "Validate", "x": 1330, "y": 160, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}, {"id": "e5", "source": "n5", "target": "n6"}, {"id": "e6", "source": "n6", "target": "n7"}]}}, {"id": 10, "name": "Approval Authority", "category": "governance", "description": "Request → Threshold → Manager → Finance → Final", "odoo_apps": "Approvals", "diagram": {"nodes": [{"id": "n1", "label": "Request", "x": 100, "y": 180, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Threshold Check", "x": 330, "y": 180, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Manager Approval", "x": 560, "y": 180, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Finance Control", "x": 790, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Final Approval", "x": 1020, "y": 180, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}]}}, {"id": 11, "name": "Document Control", "category": "governance", "description": "Draft → Review → Approve → Publish → Review Date → Archive", "odoo_apps": "Documents, Approvals", "diagram": {"nodes": [{"id": "n1", "label": "Draft", "x": 70, "y": 180, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Review", "x": 280, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Approve", "x": 490, "y": 180, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Publish", "x": 700, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Review Date", "x": 910, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n6", "label": "Archive", "x": 1120, "y": 180, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}, {"id": "e5", "source": "n5", "target": "n6"}]}}, {"id": 12, "name": "Corrective Action", "category": "compliance", "description": "Issue → Root Cause → Action → Owner → Verify → Close", "odoo_apps": "Quality", "diagram": {"nodes": [{"id": "n1", "label": "Issue", "x": 90, "y": 180, "type": "start", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n2", "label": "Root Cause", "x": 310, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n3", "label": "Corrective Action", "x": 530, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n4", "label": "Assign Owner", "x": 750, "y": 180, "type": "step", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n5", "label": "Verify", "x": 970, "y": 180, "type": "decision", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}, {"id": "n6", "label": "Close", "x": 1190, "y": 180, "type": "end", "description": "", "department": "", "role": "", "odoo_app": "", "odoo_model": "", "automation": "manual", "approval": false, "control": "", "risk": "", "notes": ""}], "edges": [{"id": "e1", "source": "n1", "target": "n2"}, {"id": "e2", "source": "n2", "target": "n3"}, {"id": "e3", "source": "n3", "target": "n4"}, {"id": "e4", "source": "n4", "target": "n5"}, {"id": "e5", "source": "n5", "target": "n6"}]}}]