16 Replies Latest reply on Mar 1, 2017 12:04 PM by Sanford Whiteman

    Create an interesting moment off of Custom Object

    Michael Oslin

      Hello,

      I have a question around Custom Objects in Marketo.

      At a high-level I am trying to create an interesting moment off of a custom object field so I can pass it to SFDC in the Marketo Sales Insight (MSI)

       

      We capture which asset ID someone downloads every time someone clicks on them, and I want to be able to pass that information to CRM.

      So the CO captures the Asset ID | Asset Name | time/date | Person/email | Type of Asset (white paper, etc) |

      I would like to create an interesting moment off of it so I can score it and also pass to CRM.

       

      I've heard munctions, but reading a few threads I'm not sure that is what I need.

      Anyone have any ideas?

       

      thank you-

       

      Michael

        • Re: Create an interesting moment off of Custom Object
          Jim Thao

          I'm reading the product docs at the moment and it looks like you can trigger off of custom objects (with some caveats).   From this, I gather that if you can trigger off of the custom object, I don't see why you wouldn't be able to then create an interesting moment in the flow. 

           

          You can read about it here: Trigger Off Custom Object Changes - Marketo Docs - Product Docs

          • Re: Create an interesting moment off of Custom Object
            Grégoire Michel

            Hi Michael,

             

            This is not possible out of the box as there is no way you would use a CO field as a token to populate your IM.

             

            Of course, you could create one smart campaigns for each possible values for the CO field. Would work and would be OK only if this field have a finite number of possible values.

             

            Otherwise, you will have to go through some API. (Sanford Whiteman, would that work with flowboost?)

             

            -Greg

            1 of 1 people found this helpful
            • Re: Create an interesting moment off of Custom Object
              Michael Oslin

              Thank you Michel and Jim-

               

              Michel,

              Are you saying that the Trigger Off Custom Object Changes is not going to work for what I'm trying to do?

              The field values are definitely a finite set.

              For instance we have 250 assets roughly, and each one has a discreet name.

              Doc ID 121; Asset Name "Understanding Marketo is Super Easy"; RetURL "www.someSite.com"

              Doc ID 122; Asset Name "xyz"; RetURL "www...com"

              And so forth

              • Re: Create an interesting moment off of Custom Object
                Michael Oslin

                Greg,

                Yes, I'm starting to get that while possible, 250 values might be a bit much for smart campaigns, particularly as I would expect that list to continue to grow over time.

                 

                We will be populating a CO via an API from our web forms (we do not use the Marketo Forms on our websites)

                We are also playing around with sending the data straight to the lead as new values, in addition to the CO. Obviously understanding that its not gathering historical data and that the information would be overwritten anytime new values are submitted.

                The CO would be used to gather historical data for future analytics.

                 

                The way we are planning on using the IM would be to send it over to SFDC with the following information "Web Form: downloaded 'XYZ' asset; URL:www.asset.com".

                That way when sales sees the IM they can know exactly what the person downloaded.

                 

                I should add that we intend on using the return URL (retURL) for email scripting. So in our transactional reply to the person that submitted his/her information, we can include a link to the asset they just downloaded.

                  • Re: Create an interesting moment off of Custom Object
                    Grégoire Michel

                    Hi Michael,

                     

                    1/ quick question: are you accessing the Marketo API from the client side or the server side of your website? Please be very careful that doing it from the client side is very dangerous: it publishes to the open world your API key, meaning that anyone can use it to post data to you Marketo instance or to simply saturate your daily API quota and create a DOS attack.

                     

                    2/ if you are publishing the data to lead fields, then you can immediately use these values to populate an Interesting Moment. As you point out, this will not create any history, but at least it makes the creation of the IM very simple.

                     

                    3/ in email scripting, you can use Custom objects as well as lead fields, so this should not be much of an issue.

                     

                    If I may suggest another architecture for the whole thing:

                    1. Post the data to lead fields only using the forms 2.0 client side API. This will not create any security issue and will not eat you daily API quota
                    2. In a "fills out form" smart campaign, create the IM with the content values and also call a webhook, passing to it the content title and URL
                    3. Have the webhook to post the CO in Marketo in an asynchronous/batch way using the REST API, not lead by lead, but in batch mode, so that you significantly reduce the number of API calls and save ion your daily quota.

                     

                    -Greg

                  • Re: Create an interesting moment off of Custom Object
                    Michael Oslin

                    Again, thank you Greg and Sanford.

                    Yeah, I socialized your concerns (as also indicated in my previous discussion about UTMs) about the DOS attacks to our Web Team.

                    They will be looking at that to ensure we are working around that risk.

                     

                    Not very familiar with FlowBoost w/Floxy, but I've been reading your blog so slowly coming up to speed. My challenge is that I'm not too technical and I'm learning the capabilities of Marketo as I go.

                     

                    Sanford, doesn't the JSON array get overwritten every time though? I'm not clear on how we would get it there...I'll reread the docs and links you provided yesterday on the UTM discussion.

                     

                    On a related note, anything I should be reading up on to get better at dev? I read some people saying java, jquery, sql, etl, javascript, etc. Any other suggestions?

                      • Re: Create an interesting moment off of Custom Object
                        Sanford Whiteman

                        Yeah, I socialized your concerns (as also indicated in my previous discussion about UTMs) about the DOS attacks to our Web Team.

                        They will be looking at that to ensure we are working around that risk.

                        It's impossible to work around, though. You have so few calls to give that metering them means your form becomes unusable.

                         

                        For example, Marketo Forms are tuned to real-world legit activity and allow up to 30 form posts per minute per source IP. (You have to bear in mind that many people share the same IP addresses, in corporate networks and perhaps more notably at trade shows and other gatherings.)

                         

                        30/min = 43,200/day = 4 times the base API limit of 10,000  (and that's making the huge and even irrational assumption that you aren't using the API for anything else). And that's for a single IP address! There's no way a system can enforce a posting limit that is low enough to stay under the API cap, while still allowing real-world use.

                         

                        Sanford, doesn't the JSON array get overwritten every time though? I'm not clear on how we would get it there...I'll reread the docs and links you provided yesterday on the UTM discussion.

                        Nope, you use two fields: one for the individual JSON custom object as it comes in, another history field that's an array of all the past JSON objects.

                         

                        The history field can either be append-only (if you use Marketo) or its internal objects can be updated (have to use FB for the updates).

                         

                        A guide to how JSON interacts with Velo is here (also linking for Greg in a sec): http://blog.teknkl.com/marketo-json-fields-in-velocity/

                         

                        On a related note, anything I should be reading up on to get better at dev? I read some people saying java, jquery, sql, etl, javascript, etc. Any other suggestions?

                        That's a tough one!  jQuery: no. It makes you a worse developer to learn jQ before you learn JavaScript. I'm not sure anyone ever recovers from jQ. (Source: I interview developers. )

                         

                        Native JS: absolutely. First priority IMO.

                         

                        Java: Tough language to start with. Within the Marketo ecosystem, the advantage of knowing Java is that it will skyrocket your Velocity skills. But starting with Velocity and understanding which parts are equiv. to Java is probably better.

                         

                        SQL: Hard to say. Database design and writing elegant SQL can take a decade to get right. Within the martech world (as a consumer of martech services, as opposed to authoring new services) I'm not sure this has much of a place.

                         

                        ETL: A broad discipline. At the low level, includes SQL, REST/SOAP APIs, and even FTP and other file transfer stuff.  At the higher level, it means becoming a power user of a package like MuleSoft, Boomi, et al. I think looking at the higher level is a good call, but I know that before I was a developer (I used to be a purely systems guy) those apps made a lot less sense to me.

                         

                        If it were up to me, I'd recommend:

                         

                        • Native JavaScript for the browser, meaning understanding the interaction between the HTML DOM, HTTP/Ajax requests, and JS. This has an immediate payoff in powering up Mkto forms and LPs.
                        • Native JavaScript without the browser, as in what you'd use in FlowBoost or other headless environments. It's exactly the same language, but since you're attacking pure data without the visual distractions, can feel totally different. Understanding objects and arrays... crucial.
                        • Velocity deep dive. So good for beefing up Marketo functionality. But not only that, it also helps you adopt efficient, collection-centric (heavy use of arrays/objects) coding practices that can be used in any modern language. If you don't code efficiently, Velo is really hard to maintain.