Web: Marketo form related issues
# This epic tracks our improvements for Marketo forms and any bugs associated with the tool.
We track items here in order to organize the historical context of what work has been done on the tool.
Related epic for Cookiebot: https://gitlab.com/groups/gitlab-com/-/epics/681
Please note that epics need to be sufficiently high-level in order to work across multiple groups and projects. Cookiebot and Marketo issues specifically involve Marketing ops, business ops, product growth, growth marketing, static site editor group (handbook), and other teams as well as the www-gitlab-com project.
## Contacts
* `@brandon_lyon`: marketing developer most familiar with the tool.
* `@amy.waller`: marketing ops tool owner.
## FAQ
### What is Marketo? Why do we use it on about.gitlab.com?
Marketo is a marketing automation tool that can be used for things like sales lead generation, email marketing, conversion or retention drip campaigns, feature awareness, and many other things. It's a tool to assist our users by presenting contextually useful information via email and other channels. It syncs with several other tools such as Salesforce.
## Why isn't this form working?
* https://about.gitlab.com/handbook/marketing/growth-marketing/brand-and-digital-design/#why-isnt-this-form-working
### Why can Marketo cause bugs for some users?
1. Marketo is a third-party tool.
2. Third-party tools are often blocked by privacy strict browsers, adblockers, firewalls, and impacted by cookie consent legislation such as GDPR / CCPA.
3. Therefore, if there are user journeys where we don't want to introduce conversion friction, it's best to not require a third party marketing tool (Marketo) before allowing a user to perform an action. It's still entirely possible to use Marketo forms at a different part of the user journey that introduces less conversion friction.
### Why don't we serve forms without a third-party intermediary?
about.gitlab.com is a statically generated website, we don't have a dynamic server. In order to process these forms without a dynamic server while ensuring a good user experience (UX), javascript is required.
### Why do we avoid using Marketo forms within popups?
This has to do with back-end asset reporting. It's more of a "don't use a form on a page other than the asset landing page" instead of a "don't use a popup". [Context](https://gitlab.com/gitlab-com/www-gitlab-com/-/merge_requests/52104#note_357696273)
## Related documentation & code
* [Marketing ops Marketo documentation](https://about.gitlab.com/handbook/marketing/marketing-operations/marketo/)
* [Shared Marketo form code is reused on several pages **but not all**](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/source/includes/form-to-resource.html.haml).
* `@brandon_lyon` started implementing this after noticing the fragmented nature of these forms. It's a copy-paste of the most recent forms from before he started working at GitLab. It has been modified per request several times since.
* [A more advanced variation of the above modified to work with A/B tests where we need multiple Marketo forms on a page](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/source/includes/form-to-resource-multiple.html.haml).
* [Cookiebot related blocked-resource applied to Marketo forms](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/source/javascripts/cbextras.js#L118)
* Note there are some variations related to localized content which are enabled by page variables (German, Italian, etc).
* [Demandbase integration for Marketo](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/source/includes/form-to-resource.html.haml#L80)
* [Google analytics callback](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/source/includes/form-to-resource.html.haml#L109)
* [Destyle marketo form so we can apply styles from a blank-slate](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/source/javascripts/scripts.js#L56)
* [Extra ga cid code only present on some forms like contact](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/source/company/contact/index.html.haml#L57)
* Xdframe relative URL: `https://page.gitlab.com/rs/194-VVC-221/images/marketo-xdframe-relative.html`
* Custom domain & javascript location: `//page.gitlab.com/js/forms2/js/forms2.min.js`
## Where to regression test Marketo
* **Preference center `/company/preference-center/`**
* **Self managed trial `/free-trial/self-managed/`**
* **Demo `/demo/`**
* **Sales `/sales/`**
* **Public sector `/solutions/public-sector/`**
* **Renewals `/renewals/`**
* All remote `/company/culture/all-remote/`
* Commit event `/events/commit/`
* Education `/solutions/education/`
* Forms with an A/B test `/just-commit/reduce-cycle-time/`
* Resource forms `/resources/whitepaper-DevSecOps-Proactive-security-reduce-risk/`
* Developer survey `/developer-survey/`
* Marketo webcast before & after webcast happens `/webcast/fintech-developer-forum/`
* Contact `/company/contact/`
* Blog landing `/blog/`
* Blog category `/blog/categories/open-source/`
## Related issues
Since an issue can only be a part of one epic, I'm listing related issues here that aren't in this epic.
* [Epic for cleaning up Marketo](https://gitlab.com/groups/gitlab-com/marketing/-/epics/910)
* [Ukraine checkboxes](https://gitlab.com/gitlab-com/marketing/marketing-operations/-/issues/1809)
* [Marketo form documentation](https://gitlab.com/gitlab-com/marketing/marketing-operations/-/issues/2335)
* [Mktg Growth: List of locations where people have trouble accessing form related content](https://gitlab.com/gitlab-com/marketing/growth-marketing/growth/-/issues/95)
* [Add Demandbase to Marketo forms](https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/5777)
* [Set Cookiebot to refresh the page after accepting cookies](https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/7845).
* [Push GA to SFDC via Marketo forms](https://gitlab.com/gitlab-com/marketing/inbound-marketing/web-analytics/-/issues/38)
epic