I need to build a voting system in Marketo. Similar to this page
Here I don't want any form submission to take place. I just want to update some specific custom fields with vote count on clicking voting button.
Here is my plan and you can suggest if any better execution plan if you have
Step 1 - Since we are not taking email address, we will create one dummy email address and update all voting count to this contacts custom field. Please note this is purely for voting count and nothing else.
Step 2 - read the custom field values before submitting the new value using below rest API
https://Marketo-end-point-url/rest/v1/leads.json?filterType=id&filterValues=<dummy_email_address_id>&access_token=&fields=Customfield1, Customfield2, Customfield3
Here I am not sure whether we can show access_token in landing page source code or in jQuery files. It might lead to data hack. open for suggestions.
Step 3 - After reading the Customfield data, increment the count by "+1" and update it using rest api.
You can suggest if there is an another way to do this.
Thank you in advance.
You can create a poll asset for this, if you'd would like to count the votes. It's probably an add-on feature, so you may not have it if you haven't purchased it.
Here I am not sure whether we can show access_token in landing page source code or in jQuery files. It might lead to data hack. open for suggestions.
It isn't a good idea to use REST APIs directly on the client side at all, IMO you should consider using webhook for updating the count on the custom fields instead.
Thank you for looking into this.
I did use POLL for this but it asks social sharing login every time when I vote which I dont want to use.
I will look into Webhook. Thank you for the right direction.
I will look into Webhook. Thank you for the right direction.
Well, a webhook needs to run in the context of a lead.
Which means you need an activity that's logged under a known lead: the mkt_tok-enized pageview and/or Munchkin session needs to be associated with a lead. You could perhaps use a custom Munchkin visitWebPage call.
There's another somewhat hacky way to do this completely anonymously by having a couple of different LPs. Then load one of them (in an IFRAME or even as an <img src> as JS doesn't matter here) depending on the person's choice. Look at the view counts in Marketo and that'll tell you how many people requested the URL.
You must not call the REST API directly from JavaScript under any circumstances. It's probably the biggest technical NO in all of Marketo.
(Note even if you were to use the REST API properly, that is, server-to-server, there would be no reason to use a dummy lead when a Program {{my.token}} could serve the same role.)
@SanfordWhiteman
Thank you for the reply. I will drop the REST API process idea and looking into Webhook as @Darshil_Shah1 suggested.
If there is any better way to read and update the count in custom field, please suggest.