{
  "apiVersion": "63.0",
  "status": "Active",
  "label": "Convert Lead — Campaign Attribution Preview",
  "description": "Output-only preview producer for the Convert Lead standard action. Looks up the most recent CampaignMember for the given Lead and surfaces the associated Campaign name (or a no-campaign indicator) as campaignFound / campaignName output variables. No RecordCreate or RecordUpdate elements — this flow is a pure read used exclusively by the POST /output-preview endpoint.",
  "runAtomically": false,
  "start": {
    "connector": {
      "targetReference": "InitDefaults"
    }
  },
  "variables": [
    {
      "name": "leadId",
      "dataType": "String",
      "isInput": true
    },
    {
      "name": "campaignFound",
      "dataType": "Boolean",
      "isOutput": true
    },
    {
      "name": "campaignName",
      "dataType": "String",
      "isOutput": true
    }
  ],
  "recordLookups": [
    {
      "name": "GetCampaignMember",
      "label": "Get newest CampaignMember for Lead",
      "object": "CampaignMember",
      "filters": [
        {
          "field": "LeadId",
          "operator": "EqualTo",
          "value": {
            "elementReference": "leadId"
          }
        },
        {
          "field": "Campaign_Name__c",
          "operator": "NotEqualTo",
          "value": {
            "stringValue": "OP - Person Lifecycle Campaign"
          }
        }
      ],
      "outputReference": "$cm",
      "getFirstRecordOnly": true,
      "sortField": "CreatedDate",
      "sortOrder": "DESC",
      "connector": {
        "targetReference": "CheckCampaignMemberFound"
      }
    }
  ],
  "decisions": [
    {
      "name": "CheckCampaignMemberFound",
      "label": "CampaignMember found?",
      "rules": [
        {
          "name": "CampaignMemberFound",
          "conditionLogic": "and",
          "conditions": [
            {
              "leftValueReference": "$cm.Id",
              "operator": "IsNotBlank"
            }
          ],
          "connector": {
            "targetReference": "SetCampaignOutput"
          }
        }
      ]
    }
  ],
  "assignments": [
    {
      "name": "InitDefaults",
      "label": "Initialize output defaults",
      "assignmentItems": [
        {
          "assignToReference": "campaignFound",
          "operator": "Assign",
          "value": {
            "booleanValue": false
          }
        }
      ],
      "connector": {
        "targetReference": "GetCampaignMember"
      }
    },
    {
      "name": "SetCampaignOutput",
      "label": "Set campaign attribution output",
      "assignmentItems": [
        {
          "assignToReference": "campaignFound",
          "operator": "Assign",
          "value": {
            "booleanValue": true
          }
        },
        {
          "assignToReference": "campaignName",
          "operator": "Assign",
          "value": {
            "elementReference": "$cm.Campaign.Name"
          }
        }
      ]
    }
  ]
}
