Using Mailchimp with Processmaker I/O
If you would like to see this User Subscription Use Case via MailChimp service in action, click this video below.
This example shows the user how to use ProcessMaker I/O in combination with MailChimp and Slack. Both software programs provide the tools that allow the user to build effective processes while satisfying a variety of business needs.
This example covers subscribe and unsubscribe user requests, taking the appropriate actions in MailChimp and sending notifications with Slack bot and email.
The tasks in the process are listed in the table below:
Task | Type | Connector | Description |
Subscription Request | Start Event |
| Starts the Subscription process |
MailChimp Subscribe\MailChimp Unsubscribe | Service Task | Mailchimp\SendMailChimp | This technical task runs a MailChimp connector, sends the argument "Subscribe" or "Unsubscribe", and gets a confirmation from MailChimp about the action |
Slack Subscription Success\Slack Unsub Success | Service Task | Slack\APIConnector | This sends a notification to the Slack channel about a successful subscription\unsubscribe |
Slack Subscription Failure\ Slack Unsub Failure | Service Task | Slack\APIConnector | This sends a notification to the Slack channel about failed subscription\unsubscribe |
Mail Success\Mail Unsub Success | Service Task | SendMailConnector | This sends a notification to the user about a successful subscription\unsubscribe |
All messages will take place in Slack. There will be NO email messages, as that defeats the purpose of Slack. Therefore, all messages will be in the form of formatted WebHook messages in either a channel or a private message between the ProcessMaker Bot and the user.
Message Title | Task | Location | Content |
Notification to user about successful subscription | Mail Success | Dear Customer_fName, | |
Notification to user about successful unsubscribe | Mail Unsub Success | Dear Customer_fName, | |
Notification to Slack channel about successful subscription | Slack Subscription Success | Slack channel | A new subscription has been completed for {customer_fname} {customer_lname} <{customer_email}> |
Notification to Slack channel about successful unsubscribe | Slack Unsub Success | Slack channel | {customer_fname} {customer_lname} <{customer_email}> unsubscribed successfully |
Notification to Slack channel about subscription failure | Slack Subscription Failure | Slack channel | A new subscription for {customer_fname} {customer_lname} <{customer_email}> resulted in failure: {subscription_error} |
Notification to Slack channel about unsubscribe failure | Slack Unsub Failure | Slack channel | An unsubscribe for {customer_fname} {customer_lname} <{customer_email}> resulted in failure: {subscription_error} |
*ProcessMaker I/O is designed to be installed in the cloud, so in this document an instance refers to an installation of ProcessMaker in a virtual machine or a container.
If you don't have an instance of ProcessMaker I/O yet, please:
If you already have an instance of ProcessMaker I/O, please:
'action' => {subscribe} or {unsubscribe} string,
'list_id' => {your_list_id},
'customer_email' => {email},
'email_md5' => md5({email}),
'customer_fname' => {John},
'customer_lname' => {Doe},
'slack_token' => {slackToken},
'slack_channel' => {slackChannel_name},
'mailchimp_api_key' => {mailChimpKey}
Substitute in the necessary values, which are marked by brackets.
Slack\ APIConnector
This connector implements notifications between your process and the Slack Web API.
Input Parameters:
"api_url">https://slack.com/api/chat.postMessage
"text"><![CDATA[message_text]>
"token">{slack_token}
"channel">{slack_channel}
Mailchimp\SendMailChimp
This connector implements subscription actions with the MailChimp service.
Input Parameters:
"arguments"><![CDATA[{"email_address":"{customer_email}","status":"unsubscribed","merge_fields":{"FNAME":"{customer_fname}","LNAME":"{customer_lname}"}}]]>
"action">put
"options"><![CDATA[{"ignore_exception":true}]]>
"method">lists/{list_id}/members/{email_md5}
"api_key">{mailchimp_api_key}
Output Parameters:
"subscription_data">{response_body}
"subscription_error">{last_error}
"subscription_successful">{result_successful}