Mailchimp Issues

ChichaChicha Member Posts: 117 ✭

I am having the following issues with the Mailchimp app and was told by LS support to raise it here

  • Sync status hangs on reserved
  • Not all orders are synced
  • 1/3 of my products are missing
  • Contacts are being set to non subscribed, while they have been uploaded from Justuno to Mailchimp LS sets them to unsubscribed

Can this be fixed please

5 comments

  • VintageWineGuyVintageWineGuy Member Posts: 97 ✭

    You may want to also reach out to MailChimp support. I am using the integration and have had - and reported - similar issues. I am on omni and had issues with how the sync merges eCom and Retail items. I had a big issue where - based on the way LS's newsletter functionality works - my best customers were being un-subbed from my mailing list because they don't check the subscribe button every time they buy. There are issues with the Product imports into mailchimp and how you can add them to emails, problems with the way automations work (or don't) on products or category/brands... Anyway, lots of issues, but I think many of them are on the MailChimp side because they built the integration. It takes them a while to get back to you, but I have had success getting things escalated to the API team. They are working on some of it slowly. Add your voice so they know paying customers need some attention.

  • ChichaChicha Member Posts: 117 ✭

    @VintageWineGuy Did you get the issue resolved with the non subscribed? because for that reason I had the app removed as every time I loose a lot of subscribers due to this

  • VintageWineGuyVintageWineGuy Member Posts: 97 ✭

    Sort of. I ended up writing a python script that rolls through all my Retail customers and marks them "authorized", and another one that takes all my eCom customers and creates a Subscription record for them, and I run them both as a nightly batch. I created a Mailchimp Automation for New joiners and send everyone a confirmation email from there with an option to modify their subscription.

    I think Lightspeed needs a way to disable their handling of subscriptions when you have something like Mailchimp, and just let Mailchimp deal with unsubs.

    I currently have a ticket open with them which has been escalated to the developer to address issues with the sync missing things.

  • ChichaChicha Member Posts: 117 ✭

    @VintageWineGuy Can you explain a little bit more about the script? Basically what I need is to have a subscription record created in LS for all email addresses I obtained in Justuno so these don't get unsubscribed in Mailchimp

  • VintageWineGuyVintageWineGuy Member Posts: 97 ✭

    I use python mostly to talk to the APIs, so the scripts are all python. Probably not the best way, but it is what I had handy.


    In retail it looks like this (lsr.list and lsr.update are my python wrapper to the API). 1. get a list of Customers that current have the noEmail flag as True (which is kind of a double negative, but noEmail =False means Yes, they get email). 2. Update them.

    # Update all Customers in Lightspeed to show communications are OK. 

    customers = lsr.list("Customer", filter = '&load_relations=["Contact"]&Contact.noEmail=true')

    data = {'Contact':{'noEmail': 'false','noPhone':'false','noMail':'false'}}

    for customer in customers:

        lsr.update("Customer", customer["customerID"], data)


    For eCom it looks like this (where lse.list and lse.create are my python wrapper to the eCom API). eCom API works differently, no way to filter a query by what I needed that I know of, so I ended up getting the full customer and subscription lists and looping through them. If a customer is not in subscriber, it adds them.

    customers = lse.list("customers")

    subscriptions = lse.list("subscriptions")

    for customer in customers:

        # We are looking for matches

        match = False

        # Look at each subscriber and see if they are the customer

        for subscriber in subscriptions:

            if subscriber['email'].lower() == customer['email'].lower():

                #if they are, we have a match

                match = True

        # If there isn't a match, we need to subscribe them

        if match == False:    

            data = {

                    "subscription": {

                        "isConfirmed": True,

                        "email": customer['email'],

                        "firstname": customer['firstname'],

                        "lastname": customer['lastname'],

                        "doNotifyConfirmed": False,

                        "language": "US"

                        }

                    }

            lse.create("subscriptions", data)



    Again, probably not the best way, but it put a bandaid on the issue.

Sign In or Register to comment.