Mailchimp API - send update notification for existing subscribers - mailchimp-api-v3.0

I have the following workflow using the Mailchimp API:
User is signing up on a form and uses the button "I want to opt in for the newsletter"
The User is posted to the Mailchimp API with status pending and receives a double-opt-in email
The User clicks on the confirm button and his status is changing to ```subscribed``
Now there is a chance, the user is coming back to another form in my app, but clicks again on the button "I want to opt in for the newsletter"
Now I have two possibilities:
My script is checking weather the user already exists on the list, in this case -> ignore and do nothing
My script triggers a Mailchimp "Update Details" Mailing which asks the user to update its details
1st case is easily doable with the Mailchimp API.
2nd case I know is possible via Mailchimp Widgets but I have not found anything in the API docu to trigger this update mailing.
I know about the different status: https://developer.mailchimp.com/documentation/mailchimp/guides/manage-subscribers-with-the-mailchimp-api/ but nothing is reflecting this particular case ("User already subscribed").
I'd like to know how I can do that and how I can trigger an "update details" mailing via the API.

As far as I know and from what it sounds like you've seen as well there isn't a pre-built option or endpoint in place to trigger MC's update profile email.
But because this version of their email is essentially just a link to the existing subscribers list profile, one of the following workarounds might be worth a shot.
1) Use their API automation workflow option to send existing subscribers an email with their update profile link using the merge tag:
*|UPDATE_PROFILE|*
Doc on that Automation API endpoint: https://developer.mailchimp.com/documentation/mailchimp/reference/automations/emails/queue/
Doc on update profile: http://kb.mailchimp.com/campaigns/design/add-an-update-profile-link
Alternatively if you'd like to try and serve subscribers their profile link right on your form after your script check in #2 that to could be done after retrieving:
the subscribers unique_email_id
From: https://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/#read-get_lists_list_id_members_subscriber_hash
and appending that hashed id to end of the lists specific Update profile URL as the value for e=
Which would lead them to their existing pre-filled update profile form:
E.g: http://mailchimp.{USX}.list-manage.com/profile?u=839fhdd4dd38abf344924fa&id=f29uundc48d&e={unique_email_id}
Your list specific URL sans the e= value can be obtained from using the update profile merge tag in their Campaign builder and using preview or sending yourself a test email.

Related

Passing description from browser in elsa

In document workflow, after I reject/approve the document in the mail, I want it to take to the browser where I can add a comment in the comment box and then pass that comment back to the employee through email. How can it be done?
I have tried adding comments in console and pass it through mail.How can it be done in UI designer?
#vahidnaderi is spot-on:
In the workflow from where you send the email containing the approve/reject link(s), have these links point to a custom webpage you create.
This webpage contains 3 fields and a submit button:
A radiolist with an "approve" and "reject" radiobuttons
A "comments" textarea.
A "workflowinstanceid" hidden field that stores the workflow instance ID.
When the form is submitted to your backend application, you trigger a signal ("approve" or "reject") for the appropriate workflow instance ID and provide the comment as input.
Your workflow will resume and the received comment will be available as input to the first activity that comes after the "signal received" activity.
That activity should either be the "send email" activity or a "set variable" activity in case you want access to the received comment later in the workflow.
From the "send email" activity, you can now access the comment you wish to include with the email.
Obviously, you're completely free to do things differently. For example, perhaps you want a separate page for "approve" and another page for "reject".
The key takeaway here is that you provide your own web UI. This web UI then interacts with your application backend (i.e. by submitting a form to a controller), which then interacts with Elsa services to e.g. trigger workflows.

How to create a WorkItem in Azure DevOps based off new email in Shared Inbox, but replies to emails stay within same task

I'm currently trying to set up a workflow within Microsoft Power Automate to do the following:
If an email is sent to a shared email box create a new task in DevOps
If someone replies back to that initial email - any responses to that thread will be tracked in the original task, and no additional tasks will be created from that chain.
Right now I'm leveraging the template that Microsoft provides called "Create a workitem in Azure DevOps when new email arrives in shared mailbox", but it creates additional tasks anytime someone replies back to the thread.
Anyone have suggestions?
Thanks,
You could use a condition that checks the 'Conversation Id' then if it matches an Id from a previously sent email's Conversation Id it does nothing. If it is new, then you'll get a new task.
If you are archiving handled emails, you'll need to filter results from the archival folder.
Here it is mapped out with a SharePoint list mapping the Conversation Id from each email:
Once the details are logged, the Get Items action on the SharePoint list pulls all items. However in that pull it uses an ODATA Filter on:
conversationId eq '<Conversation Id from trigger>'
Then if the number of matches is more than the one that you've just registered in the list, that means it was a response and the flow will follow the "no" branch. However, if it is the only entry, a new work item can be made.
You can make this much more complicated, dependent on requirements, in many areas, as that why you are using Power Automate. For example you could make API (Graph) calls to get Shared Box emails, but this is simpler, and works on a free flow plan until they add a "Get Emails from a Shared Mailbox" connector.
It's not picture perfect, because it doesn't handle a changed subject line, but it does do the job required.

If I am creating an assignment on Google Classroom using a form that has been shared with me, who will see the submissions?

My team and I have divided and conquered with creating assignments on Google Classroom using Forms. If we all share out the same form, will I see just my students or will all students show up?
Who will see the submissions?
When collaborating on a shared form and enabling the option Get email notifications for new responses - the notifications will be received by the editor who enabled with option for the given form - in this case you.
Thereby, you will receive ALL the notifications for form submissions - no matter who created the assignment and posted the form filling URL.
Analogously, all the other collaborators that enable the option "`Get email notifications for new responses" will receive ALL form submissions
In addition, all collaborators will have access to the destination spreadsheet where the responses are stored.
If you want to avoid this:
Rather then using the shared form, make a copy of it
Obtain and use the new response URL belonging to the new copy
Select your own destination spreadsheet that is not shared with anyone
Nobody other than you will have access to the form submissions made to your private copy of the shared form.

Is it possible to add a 'pending' subscriber to Mailchimp via the API?

Here's what I'd like to do:
User completes sign up form on my app
My app sends the input data (email address, name, etc) to Mailchimp via the API, but with a status of 'pending'
My app sends an email to the user asking them to confirm their email address (essentially emulating the Mailchimp confirmation email)
User clicks link in confirmation email, which takes them back to a confirmation page in my app
My app updates the user's status in Mailchimp to 'subscribed' via the API
Essentially, I want to emulate Mailchimps standard confirmation process, but sending the emails from my own app.
The part that I don't know how to do (or don't know if it's possible) is the part where I add a new subscriber with a status of 'pending'.
Here's some further info that's not strictly relevant but may be of interest...
Why don't I just use the standard Mailchimp confirmation email?
The confirmation email needs to contain extra info, unique to each user, that Mailchimp will not have access to.
Why don't I collect all the data locally and then send it all to Mailchimp once the user has confirmed their email address?
For reasons I won't go into, the number and type of required fields will be unknown. At the point when the sign up form is displayed, I will request the list of fields from Mailchimp and display the necessary fields. It is possible that, between the time when the user initially completes the form and the time when the user confirms via email, the required fields will have been changed. If I try to submit the previously collected data to Mailchimp after the required fields have been changed, it will cause an error.
So I need to collect and submit all data to Mailchimp at the same time. And then simply 'switch on' that user in Mailchimp once (s)he has confirmed.
I hope I've provided enough info. If not, happy to provide more or clarify any points.
Thanks!
The internal "pending" status is not able to be managed manually like that. You can subscribe them using double opt-in and then later force them onto the "subscribed" list, but you can't stop them from getting MailChimp's own confirmation email.
One possible work-around would be to add an interest group or merge field that is populated by your system once you've confirmed the email address. You'd then create a saved segment for only confirmed users and make sure you only ever send to that segment and never the whole list.
Another possibility, if you use API v3.0 (which is currently only in beta), is to add them to your list as unsubscribed and then switch their status to "subscribed" once you've confirmed them. If you do this, be very careful that you're not re-subscribing users who unsubscribed or you could wind up in trouble.
This workflow is definitely 100% possible in the current (V3) of the API. Just set the "status" field on a member to "pending" and then to "subscribed".

Send unique id to google checkout

I'd like to use google checkout to charge for subscriptions to my website. In order to efficiently process orders, I need to collect the purchaser's email address or another unique id for that order, so that later I can activate their account.
Is there a way to programmatically associate an id that I can generate at runtime with an order placed in google checkout?
If possible, I'd like to do this just by generating different html for the "buy now" button. If necessary, I can use the API.
Update: I see various mentions of merchant-item-id, and when I create a button with Google's tools I can set that field statically. If there were a dynamic way to set merchant-item-id, that would be perfect. Any solutions like that?
Look in to the notification API:
http://code.google.com/apis/checkout/developer/Google_Checkout_HTML_API_Notification_API.html
Changing the code of the buy now button wouldn't actually notify you if the order was completed - there'd be no way to determine if a user just loaded the buy now page, completed the payment, or if the payment was declined. With the notification api you can instantly activate the subscription only when payment is received. Of course, you have to write the script to receive the notification...
The only other option I see if changing the continue_url to somehow change the thank you page to include the id, but this is easy to fake.
The answer seems trivial now. Just throw:
<input name="shopping-cart.items.item-1.merchant-item-id" type="hidden" value="11235" />
into your BuyNow button code (or whatever form you're using to submit) with 11235 being any value you like.

Resources