SPIKE: Determine effort in moving trial form to submit to Marketo
Summary
The purpose of this spike is to investigate the required effort in moving the SaaS trial form from submitting to Salesforce to submitting to Marketo. Why this is important, as our SaaS trial volume continues to increase it's becoming more challenging for the sales team to prioritize qualified trials by submitting the data first to Marketo it will allow the marketing team to 'score' the trials only sending qualified trials to the sales team.
Notes:
- We should think about this spike in relation to this other spike #326826 (closed) on sending hand-raise PQL data to Marketo, ideally we only invest in one potential solution that will work for both use cases.
- The MVC of this work can utilize the same front-end design of the page/form, we can just change where the data is sent. However, if possible we should think about building it in a way that if we want to change this page in the future or make it a modal in-app for existing users that our initial work is additive.
- This work should only apply to the trial form that net new and existing users submit in order to get access to the trial as seen below as well as the final step of applying the trial to a namespace
Requirements:
- The data is submitted to Marketo
- The new form works for net new SaaS users as well as existing Saas users
- We should collect if they've indicated that this trial is for company/team or personal use i.e. the setup_for_company field that's asked during sign_up on the /welcome page
- We ensure that we look for existing records before creating a net new lead record
- The data that's submitted (expect PII) is also available in Sisense
- Ideally we also track some sort of successful submission response i.e. 200 as well as if we don't receive a 200 response so we know our error rate
Potential options for us to explore in the spike:
- We could potentially use the Marketo REST AIP - See https://youtu.be/W3WH4xFYLXk?t=2483
- We could potentially use the Marketo forms 2.0 API
- Note it's the preference of the marketing team that we submit the data via the forms API if possible as it makes it easier for them to know that a new submission has occurred to trigger other updates on their end. Also, the marketing team indicated that the forms API should automatically deduplicate any repeat submissions for us.
SOLUTION APPROACH
A. In-app modal form | B. SaaS Marketo FORMs 2.0 | |
---|---|---|
Sending data | REST API | FORMS 2.0 |
Behavioral Tracking | Custom | Munchin - custom website visit based scoring |
Tracking Coverage | Deeper onboarding, database metrics | Traffic |
Team implementing forms | Growth | Marketing with digital experience |
Team doing scoring | Growth | Marketing based on traffic behavior |
Open source | Open source | Proprietary marketo code |
UI styling | Gitlab UI | Overriding hack to edit Marketo Form 2.0 |
Experimentation | More rigorous engineering process | Easy for marketing to improve the form |
Support | Trial extensions, cancellations on Customers Dot | Should be done similarly |
Sending data | Sync or on the fly | On the fly |
Applying the trial | On the fly | On the fly |
Implementation Interface | API role & user & launchpoint service creation => Rest API | The same process as the Self managed form |
CustomersDot | We might need it as in-between 3rd party (if not planned to removed) | We may go through the about.gitlab.com |
Spam & abuse | Gitlab abuse process | Marketo abuse process |
TENTATIVE STEPS
Identify the viable approach and the following iterations are possible for the A variant. Also check with CustomersDot deprecation plan.
- Send the current form as is to Marketo through CustomersDot
- Remove the CustomersDot - SFDC connection
- Send setup for company field
- Improve the scoring for existing users, vs new users
- Create a
gitlab_subscription_trials
tables on gitlab.com for being able to apply business rules (like repeat trials etc) - Create sync service in a background job to Marketo
- Move the current trial form to a Gitlab UI in page widger, which can post in-page.
Edited by Alper Akgun