by Fanatical Labs

Save Your Team Countless Hours. SugarChimp syncs your lists in both directions so you can work in your preferred app. Segment and group your Mailchimp subscribers based on SuiteCRM data so you can market to the right people at the right time. Compatible with all versions of SuiteCRM.

Cancel at any time!
Free Trial

#5902 - Tutorial for on-prem systems

In Progress General Question created by crmspace GmbH 4 days ago

Hi Heidi, we have succesfully installed the addon and first records are being synchronized from Suite to Mailchimp. What does not work: We do not get any info from Mailchimp back to Suite. This is because the CRM is installed on-premise, only available via VPN. The webhook won't work therefore.

Now, we've already found your article to overcome this problem: https://fanaticallabs.zendesk.com/hc/en-us/articles/360022146071-Using-a-Reverse-Proxy-with-SugarChimp

But we need more details/explanations. Can you provide a tutorial for Suite 7.15 (it has these mentioned proxy settings in the system settings page)? What exactly needs to be configured by the network administrators? Do we even need that code snippet?

If it helps: - right now, the crm is only available with basic http:// and an IP address. - internal subdomain (still not public) with https is soon-to-come

Thank you kindly, crms

  1. fanaticallabs member avatar

    Fanatical Labs Provider Affiliate

    4 days ago

    Thanks for the message. It sounds like you've correctly identified the issue. Since your CRM is on-premise and only accessible via VPN, Mailchimp's webhooks can't reach it. A reverse proxy, using the code snippet from the article, is still the right solution here as it is a publicly accessible server that receives Mailchimp's webhook data and forwards it internally to your CRM instance. Suite 7.15 does include proxy settings under System Settings, but it looks like this setting controls outbound traffic and won't replace the need for this process. Those steps are still required for Mailchimp to send data back into Sugar.

    Your network admin will need to: -Deploy the proxy script. Place the PHP proxy script (from the article) on a publicly accessible web server. This cannot be the CRM server itself, since it must be reachable from the internet. In the script, update $sugar_url to your CRM's internal address. -Update your Mailchimp webhooks. For each synced Mailchimp audience, update the webhook URL to point to your new public proxy script. The format for the webhook is also provided in the article referenced. -Update the 'reverse_proxy' config in your CRM's database. This will tell SugarChimp to route Mailchimp webhook traffic through the proxy to reach your CRM.

    You should be able to get this working now using the http:// + your current subdomain temporarily. Once your internal HTTPS subdomain is live and publicly accessible, you can update the $sugar_url value in the proxy script to use that URL instead.

    Let me know if you have any trouble along the way.

  2. fanaticallabs member avatar

    Fanatical Labs Provider Affiliate

    4 days ago

    Thanks for the message. It sounds like you've correctly identified the issue. Since your CRM is on-premise and only accessible via VPN, Mailchimp's webhooks can't reach it. A reverse proxy, using the code snippet from the article, is still the right solution here as it is a publicly accessible server that receives Mailchimp's webhook data and forwards it internally to your CRM instance. Suite 7.15 does include proxy settings under System Settings, but it looks like this setting controls outbound traffic and won't replace the need for this process. Those steps are still required for Mailchimp to send data back into Sugar.

    Your network admin will need to:

    1. Deploy the proxy script. Place the PHP proxy script (from the article) on a publicly accessible web server. This cannot be the CRM server itself, since it must be reachable from the internet. In the script, update $sugar_url  to your CRM's internal address.
    2. Update your Mailchimp webhooks. For each synced Mailchimp audience, update the webhook URL to point to your new public proxy script. The format for the webhook is also provided in the article referenced.
    3. Update the 'reverse_proxy' config in your CRM's database. This will tell SugarChimp to route Mailchimp webhook traffic through the proxy to reach your CRM.

    You should be able to get this working now using the http:// + your current subdomain temporarily. Once your internal HTTPS subdomain is live and publicly accessible, you can update the $sugar_url value in the proxy script to use that URL instead. 

    Let me know if you have any trouble along the way. 

    Best, Heidi

  3. crmspace member avatar

    crmspace GmbH

    3 days ago

    Hi, still, I personally do not understand which parameters are involved and what needs to configured for what purpose.

    In Step 1: Within the linked script, $sugar_url contains the local address of the CRM, so in our case the current and local IP like for example "http://10.10.0.1/index.php"? The script itself should be hosted on a server that is available from mailchimp servers and can connect to the CRM (classic DMZ)?

    In Step 2: There is a link that should explain something about webhook configurations in mailchimp, but the link doesnt work ("Add this script as a new webhook for each list that syncs to your CRM"). Assumption: Somewhere in Mailchimp we need to set a link per list that points to the php file storing the above script, and add the suffix "?module=SugarChimp&entryPoint=SugarChimpWebhook" to that URL?

    In Step 3: "Even if your instance is publicly available via reverse proxy": By "reverse proxy", you refer to that same php-script-file?

    Secondly, the query contains "https://your-CRM-endpoint", what url is that? The full URL like https://our.dmz.server.tld/script.php?module=SugarChimp&entryPoint=SugarChimpWebhook or just https://our.dmz.server.tld/script.php ?

  4. fanaticallabs member avatar

    Fanatical Labs Provider Affiliate

    3 days ago

    Happy to help. 

    In Step 1: The PHP script itself will need to be hosted on a server that is reachable from Mailchimp. And yes, the $sugar_url will contain the local address of the CRM. So here, the $sugar_url should be set: http://10.10.0.1/index.php

    In Step 2: In Mailchimp, for each list that syncs to your CRM, you will configure a webhook URL that points to the public URL of the PHP script in step 1. The full webhook URL will look something like: https://our.dmz.server.tld/script.php?module=SugarChimp&entryPoint=SugarChimpWebhook

    The steps to create the webhook can be found here: https://mailchimp.com/developer/marketing/guides/sync-audience-data-webhooks/#create-a-new-webhook. You'll want to add a webhook for each of the lists you're syncing.

    In Step 3, reverse proxy does refer to the same public script mentioned. This is acting as the proxy between Mailchimp and your CRM. Updating this tells SugarChimp that webhook traffic is coming through that proxy URL so it can handle the requests properly. So in the query example, https://your-CRM-endpoint should be the base URL of that proxy script, without the query string. Using your example:

    • Mailchimp webhook would look like (this points to the server that is accessible to the public): https://our.dmz.server.tld/script.php?module=SugarChimp&entryPoint=SugarChimpWebhook       • reverse_proxy config value in the database would be: https://our.dmz.server.tld/script.php

    For this step, prior to running the query, you'll want to first see if you have the reverse_proxy config. If you do, you can just update the config to the value above. If you don't, you'll want to use the INSERT query in the support article.

    Once that is set up, you should see campaign activity for new campaigns sync back to the CRM.

    Best, Heidi

  5. crmspace member avatar

    crmspace GmbH

    a day ago

    Hi Heidi, thank you very much for your detailed responses to our points. We are currently waiting for the DMZ server and will get back to you as soon as we have test results.

    Best regards

This case is public. Please leave out any sensitive information such as URLs, passwords, etc.
Saving Comment Saving Comment...