8 Replies Latest reply on Dec 11, 2018 12:40 PM by Sanford Whiteman

    Mass-Updating Forms

    Kim Wieczner

      We are in the process of adding fields to many (and soon to be all) of our forms. We have come across this article about making this update in bulk via the API. Does anyone have experience with this?

       

      1. Are we able to append fields to existing forms using the update endpoint referenced here(http://developers.marketo.com/rest-api/assets/forms/#create_and_update): POST /rest/asset/v1/form/736.json?name=updated name&description=This is a test for update api&language=English&progressiveProfiling=true&locale=en_US
      2. How is existing form logic handled when updating a form? i.e. layers of visibility rules and progressive profiling
      3. How can we mass export all approved form names with their ID numbers?
      4. Is it possible to update all of the Marketo landing pages where these forms live at the same time?
      5. Is it possible to see what non-Marketo pages are using our forms?

       

      Any/all help is appreciated. Thanks!

        • Re: Mass-Updating Forms
          Sanford Whiteman
          Are we able to append fields to existing forms using the update endpoint

          You add with the /fields.json endpoint.

           

          How is existing form logic handled when updating a form? i.e. layers of visibility rules and progressive profiling

           

          There's an endpoint for VRs, /visibility.json. ProgPro is considered a pseudo-field in itself.

           

          You can learn a lot more by reverse-engineering forms. The methods are not all totally clear from the docs (though, to be fair it, it's one of the most complete doc sections on the Developer site -- it's just really complex).

           

          How can we mass export all approved form names with their ID numbers?

          The main /forms.json endpoint.

           

          Is it possible to update all of the Marketo landing pages where these forms live at the same time?

          Approving LP Templates and LPs is done via those other endpoints, not the Forms endpoints.

           

          Is it possible to see what non-Marketo pages are using our forms?

          No, not if you haven't already set up some kind of auditing process (i.e. using the Munchkin API to send an activity to Marketo when a form is loaded).

          1 of 1 people found this helpful
            • Re: Mass-Updating Forms
              Kim Wieczner

              Thank you, Sanford! We'll take a look through all of this.

              • Re: Mass-Updating Forms
                Victor Herrero

                Hi Sanford,

                 

                I'm very interested in two of the answers:

                Are we able to append fields to existing forms using the update endpoint

                You add with the /fields.json endpoint.

                Say we have a case of "Episode II: The GDPR Strikes Back" and we need to modify ALL forms with an additional checkbox... It's possible to mass modify all forms with this same modification via API? (If yes, I wish I had known and I really need to look into becoming a developer)
                I imagine that this would also be a case of "With great power comes great responsibility" since you could also break all of your forms in one fell swoop, which would bring me to another question:

                Could you export all of your form's current settings / setup as a backup?

                 

                Is it possible to see what non-Marketo pages are using our forms?

                No, not if you haven't already set up some kind of auditing process (i.e. using the Munchkin API to send an activity to Marketo when a form is loaded).

                This a very interesting setup, could you share a little more information on this?

                I'm a total stranger to the API world, but I feel like I should get to know it better.

                Currently we are in the process of "spring cleaning" (#globalwarming) and would like to inventory all of our assets to determine which ones are currently active.

                With landing pages we could run reports, but with forms I'm not sure about how to determine the ones currently in use, so I suggested we (and by we I mean them, our developers) build something like a web crawler that looks for all embedded forms (since this seem to be a preferred method for injecting them) in our website and lists at least their form ID.

                Your solution seems to work by sending something like a "heartbeat" for every form right? How are you collecting and reporting on that? 

                 

                Thanks!

                  • Re: Mass-Updating Forms
                    Sanford Whiteman

                    Say we have a case of "Episode II: The GDPR Strikes Back" and we need to modify ALL forms with an additional checkbox...

                    Episode V tho.

                     

                    It's possible to mass modify all forms with this same modification via API?

                    Yes, but it's certainly not worth learning the Forms REST Asset API for this. It would be easier to add the field using the Forms JS API (in the browser). Even so, how many forms do you have?  This is a good reason to have < 10 global forms, or centralize your forms starting now.

                     

                    I imagine that this would also be a case of "With great power comes great responsibility" since you could also break all of your forms in one fell swoop

                    Absolutely.

                     

                    Could you export all of your form's current settings / setup as a backup?

                    Unfortunately, not completely. There are still some parts of the form descriptor (the final version parsed in the browser) which are not exposed via REST Asset API.

                     

                    Your solution seems to work by sending something like a "heartbeat" for every form right? How are you collecting and reporting on that?

                    Right. A synthetic Visits Web Page event to be exact. Then run a Web Page Activity report.

                    1 of 1 people found this helpful
                      • Re: Mass-Updating Forms
                        Floyd Alvares

                        Hey Sanford.

                         

                        For "Is it possible to see what non-Marketo pages are using our forms?", if you are looking to see where the forms are situated on  your hosted pages. Is it not possible to run a scan of the html for the marketo form id? Just checking

                         

                        Of course this would not work for the pages that you are not hosting - such as a 3 party website etc.

                         

                        Just my thoughts

                        Floyd

                        • Re: Mass-Updating Forms
                          Victor Herrero

                          Say we have a case of "Episode II: The GDPR Strikes Back" and we need to modify ALL forms with an additional checkbox...

                          Episode V tho.

                          Haha, yes, sorry I meant "the first, second movie" that was released. I guess the fact that they started with the fourth movie confused me for life...

                           

                          It's possible to mass modify all forms with this same modification via API?

                          Yes, but it's certainly not worth learning the Forms REST Asset API for this. It would be easier to add the field using the Forms JS API (in the browser). Even so, how many forms do you have?  This is a good reason to have < 10 global forms, or centralize your forms starting now.

                          So, learning how to use REST Asset API for this is a worse investment than doing Forms JS API with a reduced number of global forms?
                          Yes, I would love to use less forms, but at the moment we have way more than 10... We are in the process of cleaning assets as I said.

                          I take it you mean by using JS, you can transform your global forms into any other form you need by hiding or showing what is asked (how do you handle different "mandatory field" requests like this?), giving them different shapes according to the situation. Are you also using a "dynamic label" solution for this? I mean changing labels according to country using something like a translation file.

                          The advantage of JS API would also be that you are "reading" and not "writing"? So you are chosing to show or hide something on the fly, but not actually modifying the base form?

                           

                          I'm unfamiliar with this method, could you share a resource to check out?

                           

                          Your solution seems to work by sending something like a "heartbeat" for every form right? How are you collecting and reporting on that?

                          Right. A synthetic Visits Web Page event to be exact. Then run a Web Page Activity report.

                          I'm also unfamiliar with this. I know how to pull a Page activity report, but what is a synthetic "visit web page" event mean? Did you tweak that event (unfamiliar with "events" in Marketo I have a very high level understanding of this concept in general: a specific circumstance you can somehow listen to and trigger actions from once it happens) so that it shows form id on the report? Or you tweaked the report?

                          You said you are using the Munchkin API to generate an activity on people's logs showing the form that was loaded?

                            • Re: Mass-Updating Forms
                              Sanford Whiteman

                              So, learning how to use REST Asset API for this is a worse investment than doing Forms JS API with a reduced number of global forms?

                              Yes.

                               

                              Admittedly, if you're not a developer, both will be nearly impossible. But I wouldn't waste time on the REST API for this, and I am a developer!

                               

                              Are you also using a "dynamic label" solution for this? I mean changing labels according to country using something like a translation file.

                              Yes.

                               

                              The advantage of JS API would also be that you are "reading" and not "writing"? So you are chosing to show or hide something on the fly, but not actually modifying the base form?

                              Yes.

                               

                              I'm also unfamiliar with this. I know how to pull a Page activity report, but what is a synthetic "visit web page" event mean?

                              It means using the Munchkin API's munchkinFunction method to send a customized Visits Web Page activity, with a synthetic page URL like /formLoadLogger/123657 (where 123657 is the form ID).

                               

                              You can then do a report on the pages visited that start with /formLoadLogger/.

                               

                              Naturally you need to embed this function call in your form embed, i.e. in a Rich Text area, since you're trying to find sites that have just the embed code running.

                              1 of 1 people found this helpful