You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改PowerShell脚本向Mailchimp导入职位与国家字段

解决Mailchimp导入Job和Country字段无数据的问题

你的脚本里有几个关键问题导致新增字段没被正确同步到Mailchimp,我来一步步帮你排查修复:

1. 先修复PowerShell哈希表的语法错误

你的$person哈希表没有正确闭合,merge_fields块和整个$person块都缺了闭合的大括号——这会直接导致脚本解析失败,根本没法传递title和Country字段。修正后的代码片段应该是这样:

$person = @{ 
    email_address = $email 
    status        = "subscribed" 
    merge_fields  = @{ 
        FNAME  = $firstname 
        LNAME  = $lastname 
        JOB    = $title  # 注意字段名要和Mailchimp后台匹配
        COUNTRY = $country  # 同上
    }  # 闭合merge_fields的大括号
}  # 闭合$person的大括号

2. 严格匹配Mailchimp合并字段的别名(Tag)

Mailchimp的合并字段是大小写敏感的,而且默认用大写别名(Tag)来识别字段。你需要先登录Mailchimp后台确认:

  • 进入你的受众列表 → 设置 → 合并字段
  • 找到你创建的job和country字段,查看它们的官方别名(比如job通常是JOB,country是COUNTRY)
  • 确保脚本里merge_fields的键名和这个别名完全一致,否则Mailchimp会直接忽略这些不识别的字段。

3. 验证AD用户的源数据是否有值

有时候问题出在AD本身的数据上,你可以在循环里加个调试输出,确认$user.title和$user.country是否真的有内容:

Foreach ($user in $users) { 
    $flagDown = $false 
    Write-Host "正在处理用户: $($user.UserPrincipalName)"
    Write-Host "职位: $($user.title) | 国家: $($user.country)"  # 新增调试输出
    $Fname = $user.GivenName 
    $Lname = $user.surname 
    $email = $user.UserPrincipalName 
    $title = $user.title 
    $country = $user.country 
    addUsertoMailChimp $email $Fname $Lname $title $country 
}

如果输出里职位或国家是空的,那你得检查AD用户的属性是否正确填充,或者换用AD里对应的属性(比如$user.co是国家名称,$user.c是国家代码,取决于你的AD配置)。

4. 确认addUsertoMailChimp函数的实现

最后要确保你的addUsertoMailChimp函数正确接收了$title和$country参数,并且把它们正确塞进了merge_fields里。比如函数的核心逻辑应该类似这样:

function addUsertoMailChimp($email, $firstname, $lastname, $title, $country) {
    $person = @{ 
        email_address = $email 
        status        = "subscribed" 
        merge_fields  = @{ 
            FNAME  = $firstname 
            LNAME  = $lastname 
            JOB    = $title 
            COUNTRY = $country 
        }
    }
    # 后续的API调用逻辑,比如转JSON再发请求
    $jsonBody = $person | ConvertTo-Json -Depth 3
    Invoke-RestMethod -Uri "你的Mailchimp API地址" -Method Post -Body $jsonBody -Headers $headers
}

按照这几步调整后,应该就能把job和country字段正确同步到Mailchimp了。

内容的提问来源于stack exchange,提问作者theking

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 07:17:29