1

我正在尝试使用来自外部来源的购买数据定期使用 mailchimp3 包/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'}}

我已经能够使用我从这篇文章中修改的脚本成功地创建新成员并更新现有成员的合并字段:

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) 想要在我的应用程序中完成所有事情。

非常感谢所有帮助!提前致谢!

4

2 回答 2

0

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

于 2021-09-01T03:42:55.350 回答
0

您不能通过补丁更新用户的标签。它仅在您添加新订阅者时按照文档中的描述工作。

我与 Mailchimp 交谈并建议他们至少在文档中更清楚地说明这一点。

于 2021-09-17T16:43:43.767 回答