如何使用mailchimp3 for Python更新订户标记?

2024-04-26 06:28:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用MailChimp 3包/API定期使用外部来源的购买数据更新MailChimp列表成员的标记。标签需要根据客户最近的购买情况每周更新一次。样本数据如下:

original_contacts = pd.DataFrame{'First Name': {0: 'Michael',
  1: 'James',
  2: 'Josephine',
  3: 'Art',
  4: 'Lenna'},
 'Last Name': {0: 'Ox',
  1: 'Butt',
  2: 'Darakjy',
  3: 'Venere',
  4: 'Paprocki'},
 'Email': {0: 'mox@gmail.com',
  1: 'jbutt@gmail.com',
  2: 'josephine_darakjy@darakjy.org',
  3: 'art@venere.org',
  4: 'lpaprocki@hotmail.com'},
 'Account Name': {0: 'Lenixi, Co.',
  1: 'Lenixi, Co.',
  2: 'Lenixi, Co.',
  3: 'Fouray, Co.',
  4: 'Fouray, Co.'},
 'Purchase': {0: 'No Purchase',
  1: 'No Purchase',
  2: 'No Purchase',
  3: 'Purchase',
  4: 'No Purchase'}}

我已经成功地使用我从this post修改的脚本创建了新成员并更新了现有成员的合并字段:

list_id = '123456'
operations = []

for index, row in original_contacts.iterrows():
    databody_item = {'email_address': row['Email'],
                     'status': 'subscribed',
                     'merge_fields': {
                         'FNAME': row['First Name'],
                         'LNAME': row['Last Name'],
                         'COMPANY': row['Account Name'],
                     },
                     'tags': [row['Purchase']]
                    }
    operations.append(databody_item)

def upload_list(list_id, subscribers_data):
    data = {'operations': create_subscriptions_data(list_id, subscribers_data)}
    client.batches.create(data)

def create_subscriptions_data(list_id, users_data):
    return [{'method': 'PUT',
             'path': 'lists/{}/members/{}'.format(list_id, user['email_address']),
             'body': json.dumps(user)} for user in users_data]

upload_list(list_id, operations)

上面的脚本将为新成员创建标记,但不会更新现有成员的标记。我还尝试了以下代码的变体,以查看是否可以更新单个成员的标记,但没有成功:

client.lists.members.tags.update(list_id = list_id, subscriber_hash='xxxxxxxxxxx', data = {'tags': [{'name': 'Purchase'}]})

这不会抛出任何错误,但也不会对现有标记做任何操作

我提出的唯一解决方案是手动删除所有现有标签,并用新标签更新每个联系人。然而,这是非常低效的,我希望1)避免更新未更改的标签,2)希望在我的应用程序中完成所有事情

非常感谢您的帮助!提前谢谢


Tags: noname标记comiddatatags成员
2条回答

我可以在这里找到所有与标记相关的内容:https://mailchimp.com/developer/marketing/guides/organize-contacts-with-tags/。 只需确保将代码框中的编码语言从默认的“BASH”更改为“PYTHON”

无法通过修补程序更新用户的标记。它仅在添加新订户时按照文档中的说明工作

我和Mailchimp谈过,建议他们至少在文档中更清楚地说明这一点

相关问题 更多 >