[
  {
    "name": "engagement",
    "label": "Engagement",
    "description": "Creates an Event activity (engagement) from the activity timeline quick-create surface.",
    "flowDeveloperName": "Std_CreateEventActivity",
    "category": "ActivityTimeline",
    "headerFallbackEligible": false,
    "rendererId": "app-pack:crm/action-renderer/task-activity-quick-create",
    "requiredPermissions": ["ApiEnabled"],
    "targetObjects": ["Contact"],
    "isAtomic": true,
    "sortOrder": 5,
    "inputs": [
      { "apiName": "recordId", "dataType": "id", "isRequired": true, "uiSection": "Context", "uiMode": "hidden", "sortOrder": 0 },
      { "apiName": "WhatId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Event", "targetFieldAPIName": "WhatId", "prefillSourceFieldAPIName": "WhatId", "sortOrder": 1 },
      { "apiName": "WhoId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Event", "targetFieldAPIName": "WhoId", "prefillSourceFieldAPIName": "WhoId", "sortOrder": 2 },
      { "apiName": "Contact_Role", "dataType": "picklist", "label": "Contact Role", "uiSection": "Event", "targetObject": "Event", "targetFieldAPIName": "Contact_Role__c", "sortOrder": 3 },
      { "apiName": "Other_Participants_Names", "dataType": "string", "label": "Other Participants' Names", "uiSection": "Event", "targetObject": "Event", "targetFieldAPIName": "Other_Participants_Names__c", "sortOrder": 4 },
      { "apiName": "Other_Participants_Info", "dataType": "string", "label": "Other Participants' Info", "uiSection": "Event", "targetObject": "Event", "targetFieldAPIName": "Other_Participants_Info__c", "sortOrder": 5 },
      { "apiName": "OwnerId", "dataType": "reference", "referenceTo": "User", "label": "Updated by", "isRequired": true, "uiSection": "Event", "targetObject": "Event", "targetFieldAPIName": "OwnerId", "sortOrder": 6 },
      { "apiName": "EventSubject", "dataType": "string", "label": "Subject", "uiSection": "Event", "targetObject": "Event", "targetFieldAPIName": "Subject", "sortOrder": 7 },
      { "apiName": "Description", "dataType": "textarea", "label": "Description", "uiSection": "Event", "targetObject": "Event", "targetFieldAPIName": "Description", "sortOrder": 8 },
      { "apiName": "Risk_and_Next_Step", "dataType": "textarea", "label": "Risk and Next Step", "uiSection": "Event", "targetObject": "Event", "targetFieldAPIName": "Risk_and_Next_Step__c", "sortOrder": 9 },
      { "apiName": "StartDateTime", "dataType": "datetime", "label": "Start", "isRequired": true, "uiSection": "Event", "targetObject": "Event", "targetFieldAPIName": "StartDateTime", "sortOrder": 10 },
      { "apiName": "EndDateTime", "dataType": "datetime", "label": "End", "isRequired": true, "uiSection": "Event", "targetObject": "Event", "targetFieldAPIName": "EndDateTime", "sortOrder": 11 }
    ],
    "outputs": [
      { "apiName": "eventId", "dataType": "reference", "referenceTo": "Event", "sortOrder": 0 }
    ],
    "fieldDefaults": [
      { "targetObject": "$Input", "fieldAPIName": "OwnerId", "valueFormula": "$User.Id", "priority": 100 }
    ]
  },
  {
    "name": "taskCall",
    "label": "Log a Call",
    "description": "Logs a completed call Task from the activity timeline quick-create surface. Mirrors the Salesforce global Log a Call (SDR ONLY) action layout: Action Status, Action Response, Interaction Type, Comments.",
    "flowDeveloperName": "Std_CreateTaskActivity",
    "category": "ActivityTimeline",
    "headerFallbackEligible": false,
    "rendererId": "app-pack:crm/action-renderer/task-activity-quick-create",
    "requiredPermissions": ["ApiEnabled"],
    "targetObjects": ["Case", "Contact", "Contract", "Lead", "Opportunity", "Order"],
    "isAtomic": true,
    "sortOrder": 10,
    "inputs": [
      { "apiName": "recordId", "dataType": "id", "isRequired": true, "uiSection": "Context", "uiMode": "hidden", "sortOrder": 0 },
      { "apiName": "WhatId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "WhatId", "prefillSourceFieldAPIName": "WhatId", "sortOrder": 1 },
      { "apiName": "WhoId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "WhoId", "prefillSourceFieldAPIName": "WhoId", "sortOrder": 2 },
      { "apiName": "Action_Status__c", "dataType": "picklist", "label": "Action Status", "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Action_Status__c", "sortOrder": 3 },
      { "apiName": "Action_Response__c", "dataType": "picklist", "label": "Action Response", "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Action_Response__c", "sortOrder": 4 },
      { "apiName": "Intera__c", "dataType": "picklist", "label": "Interaction Type", "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Intera__c", "sortOrder": 5 },
      { "apiName": "Description", "dataType": "textarea", "label": "Comments", "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Description", "sortOrder": 6 },
      { "apiName": "Subject", "dataType": "string", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Subject", "sortOrder": 7 },
      { "apiName": "ActivityDate", "dataType": "date", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "ActivityDate", "sortOrder": 8 },
      { "apiName": "Status", "dataType": "picklist", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Status", "sortOrder": 9 },
      { "apiName": "Priority", "dataType": "picklist", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Priority", "sortOrder": 10 },
      { "apiName": "OwnerId", "dataType": "reference", "referenceTo": "User", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "OwnerId", "sortOrder": 11 },
      { "apiName": "Type", "dataType": "string", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Type", "sortOrder": 12 },
      { "apiName": "CallType", "dataType": "string", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "CallType", "sortOrder": 13 },
      { "apiName": "TaskSubtype", "dataType": "string", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "TaskSubtype", "sortOrder": 14 }
    ],
    "outputs": [
      { "apiName": "taskId", "dataType": "reference", "referenceTo": "Task", "sortOrder": 0 }
    ],
    "fieldDefaults": [
      { "targetObject": "$Input", "fieldAPIName": "Subject", "valueFormula": "\"Call\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "Type", "valueFormula": "\"Call\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "CallType", "valueFormula": "\"Outbound\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "TaskSubtype", "valueFormula": "\"Call\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "Status", "valueFormula": "\"Completed\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "Priority", "valueFormula": "\"Normal\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "ActivityDate", "valueFormula": "TODAY()", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "OwnerId", "valueFormula": "$User.Id", "priority": 100 }
    ]
  },
  {
    "name": "taskEmail",
    "label": "Email",
    "description": "Creates a Task activity from the activity timeline quick-create surface.",
    "flowDeveloperName": "Std_CreateTaskActivity",
    "category": "ActivityTimeline",
    "headerFallbackEligible": false,
    "rendererId": "app-pack:crm/action-renderer/task-activity-quick-create",
    "requiredPermissions": ["ApiEnabled"],
    "targetObjects": ["Case", "Contract", "Opportunity", "Order"],
    "isAtomic": true,
    "sortOrder": 20,
    "inputs": [
      { "apiName": "recordId", "dataType": "id", "isRequired": true, "uiSection": "Context", "uiMode": "hidden", "sortOrder": 0 },
      { "apiName": "WhatId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "WhatId", "prefillSourceFieldAPIName": "WhatId", "sortOrder": 1 },
      { "apiName": "WhoId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "WhoId", "prefillSourceFieldAPIName": "WhoId", "sortOrder": 2 },
      { "apiName": "Subject", "dataType": "string", "label": "Subject", "isRequired": true, "uiSection": "Task", "sortOrder": 3 },
      { "apiName": "ActivityDate", "dataType": "date", "label": "Due Date", "isRequired": true, "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "ActivityDate", "sortOrder": 4 },
      { "apiName": "Status", "dataType": "picklist", "label": "Status", "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Status", "sortOrder": 5 },
      { "apiName": "Description", "dataType": "textarea", "label": "Description", "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Description", "sortOrder": 6 },
      { "apiName": "OwnerId", "dataType": "reference", "referenceTo": "User", "label": "Assigned To", "isRequired": true, "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "OwnerId", "sortOrder": 7 },
      { "apiName": "Priority", "dataType": "picklist", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Priority", "sortOrder": 8 },
      { "apiName": "Type", "dataType": "string", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Type", "sortOrder": 9 },
      { "apiName": "TaskSubtype", "dataType": "string", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "TaskSubtype", "sortOrder": 10 }
    ],
    "outputs": [
      { "apiName": "taskId", "dataType": "reference", "referenceTo": "Task", "sortOrder": 0 }
    ],
    "fieldDefaults": [
      { "targetObject": "$Input", "fieldAPIName": "Type", "valueFormula": "\"Email\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "TaskSubtype", "valueFormula": "\"Email\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "Status", "valueFormula": "\"Completed\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "Priority", "valueFormula": "\"Normal\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "ActivityDate", "valueFormula": "TODAY()", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "OwnerId", "valueFormula": "$User.Id", "priority": 100 }
    ]
  },
  {
    "name": "taskWeeklyUpdate",
    "label": "Weekly Update",
    "description": "Creates a Task activity from the activity timeline quick-create surface.",
    "flowDeveloperName": "Std_CreateTaskActivity",
    "category": "ActivityTimeline",
    "headerFallbackEligible": false,
    "rendererId": "app-pack:crm/action-renderer/task-activity-quick-create",
    "requiredPermissions": ["ApiEnabled"],
    "targetObjects": ["Opportunity"],
    "isAtomic": true,
    "sortOrder": 0,
    "inputs": [
      { "apiName": "recordId", "dataType": "id", "isRequired": true, "uiSection": "Context", "uiMode": "hidden", "sortOrder": 0 },
      { "apiName": "WhatId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "WhatId", "prefillSourceFieldAPIName": "WhatId", "sortOrder": 1 },
      { "apiName": "WhoId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "WhoId", "prefillSourceFieldAPIName": "WhoId", "sortOrder": 2 },
      { "apiName": "Subject", "dataType": "picklist", "label": "Subject", "isRequired": true, "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Subject", "sortOrder": 3 },
      { "apiName": "Progress", "dataType": "textarea", "label": "Progress", "isRequired": true, "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Progress__c", "sortOrder": 4 },
      { "apiName": "Risk_and_Next_Step", "dataType": "textarea", "label": "Risk and Next Step", "isRequired": true, "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Risk_and_Next_Step__c", "sortOrder": 5 },
      { "apiName": "ActivityDate", "dataType": "date", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "ActivityDate", "sortOrder": 6 },
      { "apiName": "Status", "dataType": "picklist", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Status", "sortOrder": 7 },
      { "apiName": "OwnerId", "dataType": "reference", "referenceTo": "User", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "OwnerId", "sortOrder": 8 },
      { "apiName": "Priority", "dataType": "picklist", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Priority", "sortOrder": 9 },
      { "apiName": "Type", "dataType": "string", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Type", "sortOrder": 10 }
    ],
    "outputs": [
      { "apiName": "taskId", "dataType": "reference", "referenceTo": "Task", "sortOrder": 0 }
    ],
    "fieldDefaults": [
      { "targetObject": "$Input", "fieldAPIName": "Type", "valueFormula": "\"Weekly Update\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "Status", "valueFormula": "\"Completed\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "Priority", "valueFormula": "\"Normal\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "ActivityDate", "valueFormula": "TODAY()", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "OwnerId", "valueFormula": "$User.Id", "priority": 100 }
    ]
  },
  {
    "name": "taskLeadWeeklyUpdate",
    "label": "Weekly Update",
    "description": "Creates a Lead weekly update Task activity from the activity timeline quick-create surface.",
    "flowDeveloperName": "Std_CreateTaskActivity",
    "category": "ActivityTimeline",
    "headerFallbackEligible": false,
    "rendererId": "app-pack:crm/action-renderer/task-activity-quick-create",
    "requiredPermissions": ["ApiEnabled"],
    "targetObjects": ["Lead"],
    "isAtomic": true,
    "sortOrder": 30,
    "inputs": [
      { "apiName": "recordId", "dataType": "id", "isRequired": true, "uiSection": "Context", "uiMode": "hidden", "sortOrder": 0 },
      { "apiName": "WhatId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "WhatId", "prefillSourceFieldAPIName": "WhatId", "sortOrder": 1 },
      { "apiName": "WhoId", "dataType": "id", "uiSection": "Context", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "WhoId", "prefillSourceFieldAPIName": "WhoId", "sortOrder": 2 },
      { "apiName": "Subject", "dataType": "picklist", "label": "Subject", "isRequired": true, "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Subject", "sortOrder": 3 },
      { "apiName": "Progress", "dataType": "textarea", "label": "Progress", "isRequired": true, "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Progress__c", "sortOrder": 4 },
      { "apiName": "Risk_and_Next_Step", "dataType": "textarea", "label": "Risk and Next Step", "isRequired": true, "uiSection": "Task", "targetObject": "Task", "targetFieldAPIName": "Risk_and_Next_Step__c", "sortOrder": 5 },
      { "apiName": "ActivityDate", "dataType": "date", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "ActivityDate", "sortOrder": 6 },
      { "apiName": "Status", "dataType": "picklist", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Status", "sortOrder": 7 },
      { "apiName": "OwnerId", "dataType": "reference", "referenceTo": "User", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "OwnerId", "sortOrder": 8 },
      { "apiName": "Priority", "dataType": "picklist", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Priority", "sortOrder": 9 },
      { "apiName": "Type", "dataType": "string", "uiSection": "Task", "uiMode": "hidden", "targetObject": "Task", "targetFieldAPIName": "Type", "sortOrder": 10 }
    ],
    "outputs": [
      { "apiName": "taskId", "dataType": "reference", "referenceTo": "Task", "sortOrder": 0 }
    ],
    "fieldDefaults": [
      { "targetObject": "$Input", "fieldAPIName": "Type", "valueFormula": "\"Weekly Update\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "Status", "valueFormula": "\"Completed\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "Priority", "valueFormula": "\"Normal\"", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "ActivityDate", "valueFormula": "TODAY()", "priority": 100 },
      { "targetObject": "$Input", "fieldAPIName": "OwnerId", "valueFormula": "$User.Id", "priority": 100 }
    ]
  },
  {
    "name": "ChangeOwner",
    "label": "Change Owner",
    "description": "Changes record owner through the metadata-owned Change Owner standard action.",
    "flowDeveloperName": "Std_ChangeOwner",
    "visibilityCondition": "record.OwnerId != null",
    "category": "RecordActions",
    "requiredPermissions": ["ApiEnabled"],
    "targetObjects": [
      "Lead",
      "Account",
      "Contact",
      "Opportunity",
      "Case",
      "Campaign",
      "Contract",
      "Order",
      "Task",
      "Event"
    ],
    "isAtomic": true,
    "sortOrder": 1,
    "headerFallbackEligible": false,
    "inputs": [
      { "apiName": "recordId", "dataType": "id", "isRequired": true, "uiSection": "Context", "uiMode": "hidden", "sortOrder": 0 },
      { "apiName": "objectApiName", "dataType": "string", "isRequired": true, "uiSection": "Context", "uiMode": "hidden", "sortOrder": 1 },
      { "apiName": "newOwnerId", "dataType": "reference", "referenceTo": "User", "isRequired": true, "uiSection": "Owner", "uiMode": "reuse", "sortOrder": 2 },
      { "apiName": "sendNotification", "dataType": "boolean", "label": "Send Notification", "uiSection": "Owner", "sortOrder": 3 }
    ],
    "outputs": [
      { "apiName": "recordId", "dataType": "id", "sortOrder": 0 },
      { "apiName": "previousOwnerId", "dataType": "reference", "referenceTo": "User", "sortOrder": 1 },
      { "apiName": "newOwnerId", "dataType": "reference", "referenceTo": "User", "sortOrder": 2 }
    ]
  },
  {
    "name": "convertLead",
    "label": "Convert Lead",
    "description": "Salesforce-compatible Lead Convert. Routes through the Std_ConvertLead flow so tenants customise behavior (defaults, guards, child relink) as data without backend changes.",
    "flowDeveloperName": "Std_ConvertLead",
    "visibilityCondition": "record.IsConverted != true",
    "previewFlowDeveloperName": "Std_ConvertLeadCampaignPreview",
    "category": "LeadActions",
    "rendererId": "app-pack:crm/action-renderer/lead-convert",
    "requiredPermissions": ["ConvertLeads"],
    "targetObjects": ["Lead"],
    "isAtomic": true,
    "sortOrder": 0,
    "inputs": [
      { "apiName": "leadId",                 "dataType": "id",        "isRequired": true,  "uiSection": "Lead",        "uiMode": "hidden", "targetObject": "Lead",        "targetFieldAPIName": "Id",     "sortOrder": 0 },
      { "apiName": "convertedStatus",        "dataType": "picklist",  "isRequired": true,  "uiSection": "Lead",        "uiMode": "hidden", "targetObject": "Lead",        "targetFieldAPIName": "Status", "requiredPicklistTag": "converted", "sortOrder": 1 },
      { "apiName": "accountId",              "dataType": "reference", "referenceTo": "Account",     "label": "Account",                  "uiSection": "Account",     "uiMode": "reuse",  "targetObject": "Account",                                                     "sortOrder": 2 },
      { "apiName": "contactFirstName",       "dataType": "string",                            "uiSection": "Contact",     "uiMode": "create", "targetObject": "Contact",     "targetFieldAPIName": "FirstName", "prefillSourceFieldAPIName": "FirstName", "mappingSourceObject": "Lead", "mappingActionType": "convert", "sortOrder": 3 },
      { "apiName": "contactLastName",        "dataType": "string",                            "uiSection": "Contact",     "uiMode": "create", "targetObject": "Contact",     "targetFieldAPIName": "LastName",  "prefillSourceFieldAPIName": "LastName",  "mappingSourceObject": "Lead", "mappingActionType": "convert", "sortOrder": 4 },
      { "apiName": "contactTitle",           "dataType": "string",                            "uiSection": "Contact",     "uiMode": "create", "targetObject": "Contact",     "targetFieldAPIName": "Title",     "prefillSourceFieldAPIName": "Title",     "mappingSourceObject": "Lead", "mappingActionType": "convert", "sortOrder": 5 },
      { "apiName": "contactEmail",           "dataType": "string",                            "uiSection": "Contact",     "uiMode": "create", "targetObject": "Contact",     "targetFieldAPIName": "Email",     "prefillSourceFieldAPIName": "Email",     "mappingSourceObject": "Lead", "mappingActionType": "convert", "sortOrder": 6 },
      { "apiName": "contactId",              "dataType": "reference", "referenceTo": "Contact",     "label": "Contact",                  "uiSection": "Contact",     "uiMode": "reuse",  "targetObject": "Contact",                                                     "sortOrder": 7 },
      { "apiName": "opportunityName",        "dataType": "string",                            "uiSection": "Opportunity", "uiMode": "create", "targetObject": "Opportunity", "targetFieldAPIName": "Name",      "prefillSourceFieldAPIName": "Company",   "mappingSourceObject": "Lead", "mappingActionType": "convert", "sortOrder": 8 },
      { "apiName": "opportunityId",          "dataType": "reference", "referenceTo": "Opportunity", "label": "Opportunity",              "uiSection": "Opportunity", "uiMode": "reuse",  "targetObject": "Opportunity",                                                 "sortOrder": 9 },
      { "apiName": "doNotCreateOpportunity", "dataType": "boolean",   "label": "Do Not Create Opportunity", "uiSection": "Opportunity", "uiMode": "skip",   "targetObject": "Opportunity",                                                 "sortOrder": 10 },
      { "apiName": "ownerId",                "dataType": "reference", "referenceTo": "User",        "label": "Owner",                    "uiSection": "Owner",       "uiMode": "reuse",  "targetObject": "User",                                                         "sortOrder": 11 },
      { "apiName": "overwriteLeadSource",    "dataType": "boolean",   "label": "Overwrite Lead Source",   "uiSection": "Contact",     "uiMode": "reuse",  "targetObject": "Contact",                                                     "sortOrder": 12 }
    ],
    "outputs": [
      { "apiName": "leadId",        "dataType": "id",        "sortOrder": 0 },
      { "apiName": "opportunityId", "dataType": "reference", "referenceTo": "Opportunity", "sortOrder": 1 },
      { "apiName": "accountId",     "dataType": "reference", "referenceTo": "Account",     "sortOrder": 2 },
      { "apiName": "contactId",     "dataType": "reference", "referenceTo": "Contact",     "sortOrder": 3 }
    ],
    "fieldDefaults": [
      {
        "targetObject": "Opportunity",
        "fieldAPIName": "CloseDate",
        "valueFormula": "TODAY() + 30",
        "priority": 0
      },
      {
        "targetObject": "Opportunity",
        "fieldAPIName": "Launch_Date__c",
        "valueFormula": "TODAY() + 30",
        "priority": 0
      },
      {
        "targetObject": "Opportunity",
        "fieldAPIName": "ARR_Amount_USD__c",
        "valueFormula": "0",
        "priority": 0
      },
      {
        "targetObject": "Account",
        "fieldAPIName": "Website",
        "valueFormula": "\"https://lead-convert.example.invalid\"",
        "priority": 100
      },
      {
        "targetObject": "Account",
        "fieldAPIName": "Industry",
        "valueFormula": "\"ISV/SaaS-Software\"",
        "priority": 100
      },
      {
        "targetObject": "Account",
        "fieldAPIName": "NumberOfEmployees",
        "valueFormula": "100",
        "priority": 100
      },
      {
        "targetObject": "Account",
        "fieldAPIName": "Region__c",
        "valueFormula": "\"APAC\"",
        "priority": 100
      },
      {
        "targetObject": "Account",
        "fieldAPIName": "Vertical__c",
        "valueFormula": "\"Payment\"",
        "priority": 100
      }
    ],
    "inputGuards": [
      {
        "condition": "ISBLANK(Input.accountId)",
        "requiredObject": "Account",
        "requiredOperation": "Create",
        "errorMessage": "permission denied: Account.Create is required to create an Account during lead convert",
        "gatedInput": "accountId",
        "sortOrder": 10
      },
      {
        "condition": "NOT(ISBLANK(Input.accountId))",
        "requiredObject": "Account",
        "requiredOperation": "Edit",
        "errorMessage": "permission denied: Account.Edit is required to reuse an Account during lead convert",
        "gatedInput": "accountId",
        "sortOrder": 20
      },
      {
        "condition": "ISBLANK(Input.contactId)",
        "requiredObject": "Contact",
        "requiredOperation": "Create",
        "errorMessage": "permission denied: Contact.Create is required to create a Contact during lead convert",
        "gatedInput": "contactId",
        "sortOrder": 30
      },
      {
        "condition": "NOT(ISBLANK(Input.contactId))",
        "requiredObject": "Contact",
        "requiredOperation": "Edit",
        "errorMessage": "permission denied: Contact.Edit is required to reuse a Contact during lead convert",
        "gatedInput": "contactId",
        "sortOrder": 40
      },
      {
        "condition": "AND(Input.doNotCreateOpportunity != true, ISBLANK(Input.opportunityId))",
        "requiredObject": "Opportunity",
        "requiredOperation": "Create",
        "errorMessage": "permission denied: Opportunity.Create is required to create an Opportunity during lead convert",
        "gatedInput": "opportunityName",
        "sortOrder": 50
      },
      {
        "condition": "AND(Input.doNotCreateOpportunity != true, NOT(ISBLANK(Input.opportunityId)))",
        "requiredObject": "Opportunity",
        "requiredOperation": "Edit",
        "errorMessage": "permission denied: Opportunity.Edit is required to reuse an Opportunity during lead convert",
        "gatedInput": "opportunityId",
        "sortOrder": 60
      },
      {
        "condition": "Input.doNotCreateOpportunity == true",
        "requiredPermission": "SkipOpportunityOnConvert",
        "errorMessage": "permission denied: you do not have permission to skip opportunity creation during lead convert",
        "gatedInput": "doNotCreateOpportunity",
        "sortOrder": 70
      }
    ],
    "internalAccessScopes": [
      {
        "objectApiName": "FlowDefinition",
        "operation": "Read",
        "reason": "Lead Convert owns resolution of its pack-owned standard FlowDefinition after the caller has passed the ConvertLeads action gate."
      },
      {
        "objectApiName": "Flow",
        "operation": "Read",
        "reason": "Lead Convert owns resolution of its pack-owned active Flow version after the caller has passed the ConvertLeads action gate."
      },
      {
        "objectApiName": "OpportunityContactRole",
        "operation": "Read",
        "reason": "Lead Convert owns lookup of existing opportunity contact roles before promoting or creating the primary role."
      },
      {
        "objectApiName": "OpportunityContactRole",
        "operation": "Create",
        "reason": "Lead Convert owns creation of the primary opportunity contact role after conversion."
      },
      {
        "objectApiName": "OpportunityContactRole",
        "operation": "Edit",
        "reason": "Lead Convert owns demotion and promotion of primary opportunity contact roles after conversion."
      },
      {
        "objectApiName": "CampaignMember",
        "operation": "Read",
        "reason": "Lead Convert owns lookup of campaign memberships for primary campaign attribution and child relink after conversion."
      },
      {
        "objectApiName": "CampaignMember",
        "operation": "Edit",
        "reason": "Lead Convert owns reparenting campaign memberships from Lead to Contact after conversion."
      },
      {
        "objectApiName": "Task",
        "operation": "Read",
        "reason": "Lead Convert owns lookup of open tasks for child relink after conversion."
      },
      {
        "objectApiName": "Task",
        "operation": "Edit",
        "reason": "Lead Convert owns reparenting open tasks from Lead to converted Contact and Account or Opportunity."
      },
      {
        "objectApiName": "Lead",
        "operation": "Read",
        "reason": "Lead Convert owns reading the source Lead record during conversion, even when the caller's ObjectPermissions.CanRead is false."
      },
      {
        "objectApiName": "Lead",
        "operation": "Edit",
        "reason": "Lead Convert owns writing back IsConverted, ConvertedAccountId, ConvertedContactId, ConvertedOpportunityId, and Status to the source Lead record after conversion, even when the caller's ObjectPermissions.CanEdit is false."
      },
      {
        "objectApiName": "Opportunity",
        "operation": "Read",
        "reason": "Lead Convert validates the FK to the converted/linked Opportunity (e.g. OpportunityContactRole.OpportunityId) and must confirm the record exists even when the caller's own RLS would not surface it."
      },
      {
        "objectApiName": "Opportunity",
        "operation": "Create",
        "reason": "Lead Convert owns creation of the converted Opportunity and writes Lead-to-Opportunity mapped fields after the caller has passed the Opportunity.Create input guard."
      },
      {
        "objectApiName": "Contact",
        "operation": "Read",
        "reason": "Lead Convert validates the FK to the converted/linked Contact (e.g. OpportunityContactRole.ContactId) under the action scope."
      },
      {
        "objectApiName": "Contact",
        "operation": "Create",
        "reason": "Lead Convert owns creation of the converted Contact and writes Lead-to-Contact mapped fields after the caller has passed the Contact.Create input guard."
      },
      {
        "objectApiName": "Account",
        "operation": "Read",
        "reason": "Lead Convert validates the FK to the (reused or created) Account referenced by Contact/Opportunity under the action scope."
      },
      {
        "objectApiName": "Account",
        "operation": "Create",
        "reason": "Lead Convert owns creation of the converted Account and writes Lead-to-Account mapped fields after the caller has passed the Account.Create input guard."
      },
      {
        "objectApiName": "Campaign",
        "operation": "Read",
        "reason": "Lead Convert maps the lead's primary campaign onto Contact.First_Campaign__c and Opportunity.CampaignId and must validate those FK references under the action scope."
      },
      {
        "objectApiName": "Account",
        "operation": "Edit",
        "reason": "Lead Convert's MergeAccountFields merges Lead fields into the (possibly reused, cross-owner) Account, which requires updating it."
      },
      {
        "objectApiName": "Contact",
        "operation": "Edit",
        "reason": "Lead Convert's MergeContactFields / UpdateContactOwner / UpdateContactLeadSource update the (possibly reused) Contact."
      },
      {
        "objectApiName": "Opportunity",
        "operation": "Edit",
        "reason": "Lead Convert's UpdateOpportunityOwner updates the (possibly reused) Opportunity."
      },
      {
        "objectApiName": "_System_RecordType",
        "operation": "Read",
        "reason": "Lead Convert owns default RecordType resolution for the records it creates: GetDefaultAccountRecordType (Account -> Customer) and GetDefaultOpportunityRecordType (Opportunity -> New). Matches the sibling createQuote / createOrder declarations."
      }
    ]
  },
  {
    "name": "createQuote",
    "label": "Create Quote",
    "description": "Salesforce-compatible Create Quote from Opportunity. Routes through the Std_CreateQuoteFromOpportunity flow so the parent Quote and copied QuoteLineItems are created atomically from metadata.",
    "flowDeveloperName": "Std_CreateQuoteFromOpportunity",
    "category": "OpportunityActions",
    "rendererId": "app-pack:crm/action-renderer/create-record-from-source",
    "requiredPermissions": ["ApiEnabled"],
    "targetObjects": ["Opportunity"],
    "isAtomic": true,
    "sortOrder": 10,
    "inputs": [
      { "apiName": "opportunityId", "dataType": "id", "isRequired": true, "uiSection": "Opportunity", "uiMode": "hidden", "targetObject": "Opportunity", "targetFieldAPIName": "Id", "sortOrder": 0 }
    ],
    "outputs": [
      { "apiName": "quoteId", "dataType": "reference", "referenceTo": "Quote", "sortOrder": 0 }
    ],
    "inputGuards": [
      {
        "condition": "true",
        "requiredObject": "Opportunity",
        "requiredOperation": "Read",
        "errorMessage": "permission denied: Opportunity.Read is required during Create Quote",
        "sortOrder": 0
      },
      {
        "condition": "true",
        "requiredObject": "Quote",
        "requiredOperation": "Create",
        "errorMessage": "permission denied: Quote.Create is required during Create Quote",
        "sortOrder": 10
      },
      {
        "condition": "true",
        "requiredObject": "OpportunityLineItem",
        "requiredOperation": "Read",
        "errorMessage": "permission denied: OpportunityLineItem.Read is required during Create Quote",
        "sortOrder": 20
      },
      {
        "condition": "true",
        "requiredObject": "QuoteLineItem",
        "requiredOperation": "Create",
        "errorMessage": "permission denied: QuoteLineItem.Create is required during Create Quote",
        "sortOrder": 30
      }
    ],
    "internalAccessScopes": [
      {
        "objectApiName": "_System_Object",
        "operation": "Read",
        "reason": "Create Quote resolves the Quote metadata row to map the source Opportunity RecordType to the matching Quote RecordType."
      },
      {
        "objectApiName": "_System_RecordType",
        "operation": "Read",
        "reason": "Create Quote owns source-to-target RecordType resolution for the Quote created from an Opportunity."
      },
      {
        "objectApiName": "PricebookEntry",
        "operation": "Read",
        "reason": "Create Quote derives the parent Quote Product Name from the primary source line item's PricebookEntry."
      },
      {
        "objectApiName": "Product2",
        "operation": "Read",
        "reason": "Create Quote derives the parent Quote Product Name from the primary source line item's Product2."
      }
    ]
  },
  {
    "name": "createOrder",
    "label": "Create Order",
    "description": "Salesforce-compatible Create Order from Quote. Routes through the Std_CreateOrderFromQuote flow so the Order and copied OrderItems are created atomically from metadata.",
    "flowDeveloperName": "Std_CreateOrderFromQuote",
    "category": "QuoteActions",
    "rendererId": "app-pack:crm/action-renderer/create-record-from-source",
    "requiredPermissions": ["ApiEnabled"],
    "targetObjects": ["Quote"],
    "visibilityCondition": "record.Status == 'Accepted' && record.AccountId != null",
    "isAtomic": true,
    "sortOrder": 20,
    "inputs": [
      { "apiName": "quoteId", "dataType": "id", "isRequired": true, "uiSection": "Quote", "uiMode": "hidden", "targetObject": "Quote", "targetFieldAPIName": "Id", "sortOrder": 0 }
    ],
    "outputs": [
      { "apiName": "orderId", "dataType": "reference", "referenceTo": "Order", "sortOrder": 0 }
    ],
    "inputGuards": [
      {
        "condition": "true",
        "requiredObject": "Quote",
        "requiredOperation": "Read",
        "errorMessage": "permission denied: Quote.Read is required during Create Order",
        "sortOrder": 0
      },
      {
        "condition": "true",
        "requiredObject": "Account",
        "requiredOperation": "Read",
        "errorMessage": "permission denied: Account.Read is required during Create Order",
        "sortOrder": 10
      },
      {
        "condition": "true",
        "requiredObject": "Order",
        "requiredOperation": "Create",
        "errorMessage": "permission denied: Order.Create is required during Create Order",
        "sortOrder": 20
      },
      {
        "condition": "true",
        "requiredObject": "QuoteLineItem",
        "requiredOperation": "Read",
        "errorMessage": "permission denied: QuoteLineItem.Read is required during Create Order",
        "sortOrder": 30
      },
      {
        "condition": "true",
        "requiredObject": "OrderItem",
        "requiredOperation": "Create",
        "errorMessage": "permission denied: OrderItem.Create is required during Create Order",
        "sortOrder": 40
      }
    ],
    "internalAccessScopes": [
      {
        "objectApiName": "_System_Object",
        "operation": "Read",
        "reason": "Create Order resolves the Order metadata row before selecting the target Order RecordType."
      },
      {
        "objectApiName": "_System_RecordType",
        "operation": "Read",
        "reason": "Create Order owns source Quote RecordType to target Order RecordType resolution."
      }
    ]
  },
  {
    "name": "sendRecordEmail",
    "label": "Email",
    "description": "Queue one provider-neutral email for the current user's connected mailbox and log CRM activity only after proven delivery.",
    "flowDeveloperName": "Std_SendRecordEmail",
    "category": "ActivityTimeline",
    "rendererId": "app-pack:crm/action-renderer/email-compose",
    "config": {
      "outboundMail": {
        "connectorOwnerKey": "salesforce-crm-standard",
        "flowActionName": "EnqueueMail",
        "actionSlotId": "send-mail",
        "destinationSlotId": "primary-mailbox",
        "calloutProfileOwnerPack": "gmail-connected-mail-connector",
        "calloutProfileBusinessKey": "gmail-connected-mail-connector/gmail-delivery",
        "mailCompletion": {
          "recipientAddressField": "Email",
          "recipientOptOutField": "HasOptedOutOfEmail",
          "activity": {
            "objectApiName": "Task",
            "sourceRecordField": "WhoId",
            "subjectField": "Subject",
            "activityDateField": "ActivityDate",
            "statusField": "Status",
            "priorityField": "Priority",
            "bodyField": "Description",
            "ownerField": "OwnerId",
            "typeField": "Type",
            "subtypeField": "TaskSubtype",
            "fixedSubject": "Email",
            "fixedStatus": "Completed",
            "fixedPriority": "Normal",
            "fixedType": "Email",
            "fixedSubtype": "Email"
          },
          "message": {
            "objectApiName": "EmailMessage",
            "activityIdField": "ActivityId",
            "fromAddressField": "FromAddress",
            "toAddressField": "ToAddress",
            "ccAddressField": "CcAddress",
            "bccAddressField": "BccAddress",
            "subjectField": "Subject",
            "textBodyField": "TextBody",
            "htmlBodyField": "HtmlBody",
            "attachmentIdsField": "AttachmentIds",
            "incomingField": "Incoming",
            "statusField": "Status",
            "messageDateField": "MessageDate",
            "fixedIncoming": false,
            "fixedStatus": "3"
          }
        }
      }
    },
    "requiredPermissions": [
      "ApiEnabled"
    ],
    "targetObjects": [
      "Contact",
      "Lead"
    ],
    "legacyNames": [
      "taskEmail"
    ],
    "headerFallbackEligible": false,
    "isAtomic": true,
    "sortOrder": 30,
    "inputs": [
      {
        "apiName": "requestId",
        "dataType": "string",
        "isRequired": true,
        "uiMode": "hidden",
        "sortOrder": 0
      },
      {
        "apiName": "recordId",
        "dataType": "id",
        "isRequired": true,
        "uiMode": "hidden",
        "sortOrder": 10
      },
      {
        "apiName": "objectApiName",
        "dataType": "string",
        "isRequired": true,
        "uiMode": "hidden",
        "sortOrder": 20
      },
      {
        "apiName": "subject",
        "dataType": "string",
        "isRequired": true,
        "label": "Subject",
        "sortOrder": 30
      },
      {
        "apiName": "body",
        "dataType": "string",
        "isRequired": true,
        "label": "Plain Text Message",
        "sortOrder": 40
      },
      {
        "apiName": "cc",
        "dataType": "string",
        "isRequired": false,
        "label": "Cc",
        "sortOrder": 50
      },
      {
        "apiName": "bcc",
        "dataType": "string",
        "isRequired": false,
        "label": "Bcc",
        "sortOrder": 60
      },
      {
        "apiName": "htmlBody",
        "dataType": "string",
        "isRequired": false,
        "label": "HTML Message",
        "sortOrder": 70
      },
      {
        "apiName": "attachments",
        "dataType": "id",
        "isCollection": true,
        "isRequired": false,
        "label": "Attachments",
        "sortOrder": 80
      }
    ],
    "outputs": [
      {
        "apiName": "intentId",
        "dataType": "string",
        "sortOrder": 0
      },
      {
        "apiName": "deliveryState",
        "dataType": "string",
        "sortOrder": 10
      },
      {
        "apiName": "failureCode",
        "dataType": "string",
        "sortOrder": 20
      }
    ],
    "inputGuards": []
  }
]
