Hi, Does Marketo allow us to have a check with an external URL on the subscription list before sending out an email. Does webhook allow this?

Anonymous
Not applicable

Hi,

Does Marketo allow us to have a check with an external URL on the subscription list before sending out an email. Does webhook allow this?

12 REPLIES 12
Grégoire_Miche2
Level 10

Hi Sridevi,

The approach you are looking into (checking before sending the email if the lead is unsubscribed in another DB), IMHO, is dangerous: it works only for smart campaigns and will not work for engagement programs with emails nor with email programs. It also completely depends on users not forgetting to call the webhook before sending.

At the end of the day, the safest approach is to that the complete list of unsubscribes are located within Marketo, so that you protect sends non only now but also in the future and is implemented on all programs for all users. It can be done without increasing your Marketo DB. See this post: Feeding the Durable Unsubscribe List without increasing the database

The approach described in this post is done through an import, but you could also use it through the REST API.

-Greg

Josh_Hill13
Level 10 - Champion Alumni

You can certainly do this with Engagements with a daily removal campaign. Also, if the unsub flag is properly updated, the Engagement won't send anyway.

Grégoire_Miche2
Level 10

Hi Josh,

Sure, bit as these unsubscribes are not known to Marketo until the webhook is called, it is still completely dependent on the users not forgetting to place checks everywhere. Quite a sure way that someone forget's one day.

-Greg

SanfordWhiteman
Level 10 - Community Moderator

You can do this with a webhook, yes.

But note it's not as simple as returning a true/false value from the webhook: you use the webhook to set the value of a field on the lead, and then use that data value change to take further action.

Anonymous
Not applicable

Thanks for the quick response. Could you point me to an example of this. I'm just trying to figure out how I can make the webhooks for a particular event.

SanfordWhiteman
Level 10 - Community Moderator

What exactly are you not finding in the docs or elsewhere on the web?  Webhooks are a general-use technology and Marketo supports them quite well.  Set up your service to expect the {{Lead.Email Address}} -- either in the URL (GET) or in the body (POST) of the request -- and respond with a JSON object with the field(s) you want to update.

The tricky part with Marketo is that data value change is asynchronous (i.e. "in the background") meaning that you can't expect the lead field to be updated on the very next step of the flow.  Some people put an arbitrary wait step. I categorically disagree with this approach.  Instead, set up an SC that triggers on the Change Data Value activity, so it is always right.

Josh_Hill13
Level 10 - Champion Alumni

Yes, you could use a webhook.

There are docs around on how to do this and you can check out RingLead's old webhook guide.

Why do you need to do this?

Anonymous
Not applicable

We have two other services that need to be synced when ever a user unsubscribes. Instead, we're considering having one source of truth and have Marketo make a call to this service before sending emails.

Josh_Hill13
Level 10 - Champion Alumni

Why not make Marketo the source of truth and use a batch API update to bring in the values elsewhere, manage the conflicts, and pass it back to Marketo?

SanfordWhiteman
Level 10 - Community Moderator

I agree, but Mkto can still be the source of truth even if you use a webhook.  Digging into the API to export and reimport daily unsubscribes is going to be a harder technical task.

Anonymous
Not applicable

was wondering if you also allow mkt_opt_out_prefix to be changed - That way, all new unsubscribes go to a custom url, which would be later synced.

SanfordWhiteman
Level 10 - Community Moderator

No, you can't change the value of that system variable, but you can set your own unsubscribe link to anywhere you want.  This is a different topic and I think you should search the Community and open another thread if you have questions.