def add_and_update_cm_subscribers(list_id, subscribers): ''' Adds new people to a Campaign Monitor list, and updates fields of existing subscribers. (If a field is ommited, its value remains unchanged.) ''' logger.info("Adding new and updating existing.") subscriber = Subscriber(settings.CAMPAIGN_MONITOR_AUTH) import_result = subscriber.import_subscribers(list_id, subscribers, False) logger.info("Added new and updated existing.") report = { "new_subscribers": import_result.TotalNewSubscribers, "existing_subscribers": import_result.TotalExistingSubscribers, "duplicates_in_import_list": import_result.DuplicateEmailsInSubmission, "uniques_in_import_list": import_result.TotalUniqueEmailsSubmitted } if len(import_result.FailureDetails): errors = defaultdict(list) for error in import_result.FailureDetails: errors["{} ({})".format(error.Message, error.Code)].append(error.EmailAddress) report["errors"] = errors return report
def add_and_update_cm_subscribers(list_id, subscribers): ''' Adds new people to a Campaign Monitor list, and updates fields of existing subscribers. (If a field is ommited, its value remains unchanged.) ''' logger.info("Adding new and updating existing.") subscriber = Subscriber(settings.CAMPAIGN_MONITOR_AUTH) import_result = subscriber.import_subscribers(list_id, subscribers, False) logger.info("Added new and updated existing.") report = { "new_subscribers": import_result.TotalNewSubscribers, "existing_subscribers": import_result.TotalExistingSubscribers, "duplicates_in_import_list": import_result.DuplicateEmailsInSubmission, "uniques_in_import_list": import_result.TotalUniqueEmailsSubmitted } if len(import_result.FailureDetails): errors = defaultdict(list) for error in import_result.FailureDetails: errors["{} ({})".format(error.Message, error.Code)].append(error.EmailAddress) report["errors"] = errors return report
random_subscriber={} subscriber_list=[] test_field_name="Main Hobby" possible_interests=["getting drunk","playing cards","rollerblading"] #fields_created = create_custom_fields(field_name=test_field_name,options=possible_interests) #print("You created the following entry" + fields_created) #NEED TO CREATE THE CUSTOM FIELDS first for i in my_names['results']: print(i['name']['first']+" "+i['name']['last']) random_subscriber={} random_subscriber.update(Name = i['name']['first']+" "+i['name']['last']) random_subscriber.update(EmailAddress = i['email']) random_subscriber.update(ConsentToTrack = "Yes") random_subscriber.update(CustomFields = [{"Value":random.choice(possible_interests),"Key":test_field_name}]) #print(random_subscriber) subscriber_list.append(random_subscriber) #print(subscriber_list) #create_new_list(clientid="9cde80d058d8e4955a076d33b6ec2294") print(subscriber_list) my_subscriber = Subscriber(account_auth) my_subscriber.import_subscribers("2345accabd471c4c45e5fc463c8353a1", subscriber_list, True, False, True)