FTP / CSV to MailChimp

  • 174Views
  • Last Post 03 August 2021
0
votes
David Jerram posted this 20 July 2021

I am attempting to synchronise data from a customers CRM to MailChimp, so they can send automated emails to customers and prospects.   The CRM isn’t easy to hook into - so the customer is making the data available as a CSV file on an FTP server.  I managed to configure Skyvia to read the CSV and push it to the customers MailChimp list.   What I cannot do is:

  • Update the data on Mailchimp.  I can only push New data. Skyvia fails when I try to Update the records, because it needs a JSON formatted ID to be mapped.
  • There are two fields that I cannot seem to Map (Tags and Status).  Again, it looks like Mailchimp needs these in a JSON format.

Please could someone point me to a solution for both of these issues?     

Order By: Standard | Newest | Votes
0
votes
David Jerram posted this 20 July 2021

UPDATE
After a web chat with Skyvia support, I was directed to this KB article: 

https://support.skyvia.com/thread/import-and-update-list-memebers-to-mailchimp

This solved my issue. Thank you.

0
votes
Mariia Zaharova posted this 20 July 2021

Hi David,

 

Thank you for contacting us!

 Update the data on Mailchimp.  I can only push New data. Skyvia fails when I try to Update the records, because it needs a JSON formatted ID to be mapped.

Please take a look at this topic  https://support.skyvia.com/thread/import-and-update-list-memebers-to-mailchimp/

 

The Tags field stores values in this format:

[{"id": 12345, "name": "abc"}]

If you want to manage all the Tags for existing ListMembers, we recommend you to look at the ListMemberTags table: https://mailchimp.com/developer/marketing/api/list-member-tags/

 

As for the Status field, it accepts these values: "subscribed", "unsubscribed", "cleaned", "pending", "transactional", or "archived".

Please check https://mailchimp.com/developer/marketing/api/list-members/list-members-info/

 

If you have my further questions, feel free to contact us.

 

Best regards,

Mariia

0
votes
David Jerram posted this 21 July 2021

Hi Mariia,

I am running my task again - but with more data. There are 1975 records in my CSV.  I have had repeated errors with : "CSV file has invalid content or its structure does not correspond to the mapping defined in the package" - yet it either validates correctly or I have to remap all of the fields repeatedly.

It then validates, but the last run took over 1.5 hours. Run ID is 62943537

The error report says 1975 records (1960 success rows, 15 error rows) - but the log is unnavailable. Is there any way to know which records gave errors and why please? 

Thank you. 

 

 

0
votes
Mariia Zaharova posted this 22 July 2021

Hi David,

 

Do you get the "Log is unavailable" error when clicking the 15 failed records link? Please confirm.

 

Best regards,

Mariia

0
votes
David Jerram posted this 27 July 2021

Hi Mariia,

Yes, when clicking on the '15' failed records link, I see 'Log unnavailable'.

It is the same wih the link to the successful records. 

 

0
votes
Mariia Zaharova posted this 27 July 2021

Hi David,

 

We have sent you a direct message with errors. Please check.

 

Best regards,

Mariia

0
votes
David Jerram posted this 28 July 2021

Hi Mariia,

I have cecked the errors and updated the data. However, on running the package I now get "CSV file has invalid content or its structure does not correspond to the mapping defined in the package."

However, the data is structured in the same way, it maps correctly and validates. 

I think this is the last try - I will use a webhook instead if this fails again. 

0
votes
Mariia Zaharova posted this 29 July 2021

Hi David,

 

This error usually occurs when the structure of the CSV file in the source does not correspond to the structure of the file initially added to the Task, e.g. some columns are missing, added, renamed, reordered, etc. Another possible reason - unexpected hidden characters in the file which may lead to violation of file integrity.

Thus, please check your file, for example, via NotePad++ and then reload the file to the Task (re-add from SFTP to refresh columns lists) and check the mapping.

Try running it and let us know the results.

 

Best regards,

Mariia

 

0
votes
David Jerram posted this 30 July 2021

Hi Mariia,

I think the import mapping is working now. However, the log shows that it Fails, with 614 errors.
These are all 'is already a list member'. 

  • Could you confirm that 'Failed' means that NONE of the records were either added or updated? Or, did 1316 records actually get updated and 614 were not updated?
  • The target definition is set to 'Upsert' which I assumed means update if the record already exists - or insert if the record is new.  Is that correct? 
  • Finally, I dont seem to be receiving any email notifications of actions completed. 

Thank you.

0
votes
David Jerram posted this 02 August 2021

BUMP

0
votes
Mariia Zaharova posted this 03 August 2021

 Hello David,

 

Sorry for the delayed response.

 

Could you confirm that 'Failed' means that NONE of the records were either added or updated? Or, did 1316 records actually get updated and 614 were not updated?

In the last run of your package, 1316 records were imported successfully and 614 records were failed. The run state is Failed due to the failed records.

 

The target definition is set to 'Upsert' which I assumed means update if the record already exists - or insert if the record is new.  Is that correct? 

Yes, exactly. However, as we can see you use Constant Mapping for the ListId field while do not specify Constant in the Lookup mapping. This means that Lookup will review all emails in ALL lists. If you are going to import data only to one particular ListId, please change your Lookup Mapping:

 

Finally, I dont seem to be receiving any email notifications of actions completed. 

Please refer to https://docs.skyvia.com/account-management/email-notifications.html

Note: in case of failed runs with success and failed records, notifications are not sent.

 

Best regards,

Mariia

 

Close