[
    {
        "name": "Edit",
        "label": "Edit",
        "type": "UpdateRecord",
        "icon": "Edit"
    },
    {
        "name": "ChangeOwner",
        "label": "Change Owner",
        "type": "ChangeOwner",
        "icon": "UserCheck",
        "appliesTo": [
            "Lead",
            "Account",
            "Contact",
            "Opportunity",
            "Case",
            "Campaign",
            "Contract",
            "Order",
            "Task",
            "Event"
        ],
        "config": {
            "visibilityCondition": "record.OwnerId != null"
        }
    },
    {
        "name": "Clone",
        "label": "Clone",
        "type": "Standard",
        "icon": "Copy",
        "objectApiName": "Opportunity"
    },
    {
        "name": "Delete",
        "label": "Delete",
        "type": "DeleteRecord",
        "icon": "Trash"
    },
    {
        "name": "CreateQuote",
        "label": "Create Quote",
        "type": "NavigateToNewRecord",
        "icon": "FilePlus",
        "objectApiName": "Opportunity",
        "targetObject": "Quote",
        "config": {
            "lookupField": "OpportunityId",
            "prefillMappings": {
                "Name": "Name",
                "AccountId": "AccountId",
                "Discount": "Discount"
            },
            "workflow": {
                "fieldMappings": {
                    "Name": "Name",
                    "AccountId": "AccountId",
                    "Discount": "Discount"
                }
            }
        }
    },
    {
        "name": "EditProducts",
        "label": "Edit Products",
        "type": "NavigateToRelatedList",
        "icon": "Package",
        "objectApiName": "Opportunity",
        "config": {
            "targetObject": "OpportunityLineItem",
            "lookupField": "OpportunityId"
        }
    },
    {
        "name": "Accept",
        "label": "Accept",
        "type": "UpdateStatus",
        "icon": "CheckCircle",
        "objectApiName": "Quote",
        "config": {
            "targetStatus": "Accepted",
            "statusField": "Status",
            "visibilityCondition": "record.Status == 'Approved'"
        }
    },
    {
        "name": "Activate",
        "label": "Activate",
        "type": "UpdateStatus",
        "icon": "Zap",
        "objectApiName": "Order",
        "config": {
            "targetStatus": "Activated",
            "statusField": "Status",
            "visibilityCondition": "record.Status == 'Draft'"
        }
    },
    {
        "name": "CreateContact",
        "label": "New Contact",
        "type": "NavigateToNewRecord",
        "icon": "UserPlus",
        "objectApiName": "Account",
        "targetObject": "Contact",
        "config": {
            "lookupField": "AccountId"
        }
    },
    {
        "name": "CreateContract",
        "label": "Create Contract",
        "type": "NavigateToNewRecord",
        "icon": "FilePlus",
        "objectApiName": "Account",
        "targetObject": "Contract",
        "config": {
            "lookupField": "AccountId",
            "prefillMappings": {
                "OwnerId": "OwnerId",
                "CurrencyIsoCode": "CurrencyIsoCode",
                "Description": "Description",
                "BillingStreet": "BillingStreet",
                "BillingCity": "BillingCity",
                "BillingState": "BillingState",
                "BillingPostalCode": "BillingPostalCode",
                "BillingCountry": "BillingCountry"
            }
        }
    },
    {
        "name": "CreateOrder",
        "label": "Create Order",
        "type": "NavigateToNewRecord",
        "icon": "FilePlus",
        "objectApiName": "Quote",
        "targetObject": "Order",
        "config": {
            "lookupField": "QuoteId",
            "visibilityCondition": "record.Status == 'Accepted' && record.AccountId != null",
            "prefillMappings": {
                "AccountId": "AccountId",
                "ContractId": "ContractId",
                "OpportunityId": "OpportunityId",
                "Pricebook2Id": "Pricebook2Id",
                "Description": "Description",
                "CurrencyIsoCode": "CurrencyIsoCode",
                "TotalAmount": "GrandTotal",
                "BillingStreet": "Account.BillingStreet",
                "BillingCity": "Account.BillingCity",
                "BillingState": "Account.BillingState",
                "BillingPostalCode": "Account.BillingPostalCode",
                "BillingCountry": "Account.BillingCountry",
                "BillToContactId": "ContactId",
                "OwnerId": "OwnerId"
            }
        }
    }
]
