This page documents ways in which content is leveraged in campaigns, including in-house created content, analyst relations content, and downloadable competitive content.
In an effort to best engage our technical audience, we are pursuing an ungated content journey that leverages Pathfactory tracks, rather than gated landing pages. This allows viewers to preview content before signing up to view in its entirety. We have flexibility about when and how the forms display, and will test to deliver the best experience with proven results. This process will also be more efficient to launch new content so time can be focused on how to leverage the content in campaigns.
The epic code in each section below outlines the necessary issues to open in order to "check off" the list of action items to launch a new piece of content. While this page exists within the Campaigns Team handbook page, it is meant to be contributed to by all teams in marketing. If you see an updated needed, please submit an MR and assign to @aoetama
.
Search the entire Pathfactory Content Library
https://gitlab.lookbookhq.com/authoring/content-library/content
Filter by one or multiple of the following:
View reports to see what works
The below process should be used for all new content (ebooks, guides, whitepapers, etc.). Creating the epic and related issues is the responsibility of the Campaign Manager to make sure that when the content is ready, the teams involved in putting into Pathfactory (MOps) and the teams involved in activating (Campaigns, Digital, ABM) are able to take action immediately.
If you have any questions on this process, please contact @aoetama
in the #marketing-campaigns Slack channel. This process has been iterated since 2018 for efficiency and to fit all teams' project management practices, and is meant to continually updated as needed!
Campaign Manager
aligned to the integrated campaign creates epic (using code below) and associates to campaign epicCampaign Manager
aligned to the integrated campaign creates the issues as designated in the epic code, and associates to the content epic:calendar: As a guide in developing timeline, please view the *workback timeline calculator
<!-- NAME EPIC: [type] <Name of Asset> (ex. [eBook] A beginner's guide to GitOps) -->
## Launch date: `to be added`
## Landing Page: (add when live)
## Pathfactory link: (add when live)
#### :key: Key Details
* **Content Owner:**
* **Campaign Manager:**
* **Official Content Name:**
* **Official Content Type:**
* **Primary Campaign:**
* **Primary Sales Segment:**
- [ ] Enterprise
- [ ] Mid-Market
- [ ] SMB
* **Primary Buying Stage:**
- [ ] Awareness
- [ ] Consideration
- [ ] Decision/Purchase
* **Primary Persona:**
* **Language:**
* **Marketo Program Name:** `YYYY_Type_NameAsset` <!-- as content owner, you make this up. Follow structure, no spaces, keep it short - i.e. `2020_eBook_BegGuideGitOps`. This will be used for MKTO/SFDC program. -->
* [ ] [main salesforce program]() - `to be created`
* [ ] [main marketo campaign]() - `to be created`
* [ ] [asset copy draft]() - `doc to be added by Content Marketing`
* [ ] [pathfactory track link]() - `link to PF track (the track in PF, not the live link) when created`
### :books: Issues - Content Owner to Create
[Use the workback timeline calculator to assign correct due dates based off of launch date](https://docs.google.com/spreadsheets/d/1RvYLEUJvh9QZJZX1uXiKJPcOOSGd7dEeNneqyA2bt3A/edit#gid=969067029)
**Required Issues:**
* [ ] :calendar: Not an issue, but an action item for content owner: Add to [SSoT Marketing Calendar](https://docs.google.com/spreadsheets/d/1ni6gKeWhjtrNppMdYvPESsCRjDbfVdYjTNtUtcNBFGg/edit#gid=571560493)
* [ ] Asset Copy Issue (open based on which team is content owner)
* [Content Asset Copy Issue](https://gitlab.com/gitlab-com/marketing/inbound-marketing/global-content/content-marketing/-/issues/new?issuable_template=content-resource-request) - Content
* [PMM Asset Copy Issue](https://gitlab.com/gitlab-com/marketing/strategic-marketing/product-marketing/-/issues/new) - PMM (no issue template)
* [ ] [Nurture Email Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/campaigns/-/issues/new?issuable_template=add-to-intelligent-email-nurture) - Content, Lifecycle & Campaigns
* [ ] [Asset Design Issue](https://gitlab.com/gitlab-com/marketing/inbound-marketing/global-content/content-marketing/-/issues/new?issuable_template=design-request-content-resource) - Digital Design
* [ ] 🧨 Not an issue, but an action item for content owner: upload to Pathfactory
* [ ] :dart: Not an issue, but an action item for content owner: add to HighSpot
* [ ] [Pathfactory Track Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/campaigns/-/issues/new?issuable_template=request-pathfactory-track) - Campaigns
* [ ] [Resource Page Addition Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/campaigns/-/issues/new?issuable_template=request-resource-page-addition) - Campaigns
**Supplemental issues:**
* [ ] [Landing Page Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/campaigns/-/issues/new?issuable_template=request-content-landing-page) - Content & Campaigns _(only if promoting via Facebook and Google AdWords)_
<details>
<summary>Expand below for quick links to optional activation issues to be created and linked to the epic.</summary>
* [ ] [Digital Marketing Promotion Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/digital-marketing/-/issues/new?issuable_template=paid-digital-request) - Digital Marketing
* [ ] [Organic Social Issue](https://gitlab.com/gitlab-com/marketing/corporate_marketing/corporate-marketing/-/issues/new?issuable_template=social-gtm-organic) - Social
* [ ] [Homepage Feature (only when applicable)](https://gitlab.com/gitlab-com/marketing/inbound-marketing/growth/-/issues/new?issuable_template=request-website-homepage-promotion) - Growth Marketing
* [ ] [Blog](https://about.gitlab.com/handbook/marketing/blog/) - Editorial
* [ ] [PR Announcement Issue](https://gitlab.com/gitlab-com/marketing/corporate_marketing/corporate-marketing/issues/new?issuable_template=announcement) - PR
</details>
/label ~"Content Marketing" ~"Gated Content" ~"mktg-demandgen" ~"dg-campaigns" ~"mktg-status::wip"
External content can be sourced from Analyst Relations, partners, and other vendors with whom we work. Some examples would be vendor comparisons (i.e. Gartner/Forrester) or industry/market analyses (i.e. DevOps Institute).
When a GitLab team member (i.e. AR) is evaluating a potential content for sponsorship, they are responsible for working with the GTM Motion teams to discuss how to leverage the content and if it makes sense for us to sponsor. They can do so by opening a decision matrix issue (see step by step process below). The campaign manager will evaluate the decision matrix inputs and give the final go/no go on sponsorship decision. If the decision is to sponsor the external content, the campaign manager will create the content activation epic and associated issues to request work of all relevant teams (outlined below to try to make it efficient, comprehensive, and repeatable!).
All external content should be planned in advance of purchase with at least a 30 business day time to launch date
. This allows time to plan activation into existing and future integrated campaigns and GTM Motions.
The purpose of the decision matrix is to gather cross-functional feedback whether a new analyst report will be a lucrative investment to solidify GitLab's positioning in the market. It will also outline the campaigns and persona it is aligned to as well as the channels where it will be activated.
Campaign Manager to tag relevant product marketing, sdr enablement, and field enablement counterparts on the decision matrix issue and comment to submit their inputs by agreed upon SLA date. | SLA: 1 Business Day |
Product Marketing,SDR Enablement, Field Enablement to fill out their portions for relevant channels, campaign, persona. Tag relevant technical counterparts for input. | SLA: 3 Business Days |
Campaign Manager fills out the suggested channel for promotion and makes the go/no go decision on sponsorship, tagging analyst relations | SLA: 3 Business Day |
Decision Matrix end to end decision timeline (SLA): 7 Business days
If you have any questions on this process, please contact @aoetama
in the #marketing-campaigns Slack channel. This process has been iterated since 2018 for efficiency and to fit all teams' project management practices, and is meant to continually updated as needed!
Campaign Manager
creates epic (using code below) and associates to primary GTM Motion epicCampaign Manager
creates the issues as designated in the epic code, and associates to the external content epicAs a guide in developing timeline, please view the workback timeline calculator here
<!-- NAME EPIC: [type] <Name of Asset> (ex. [Report] Gartner MQ for ARO) -->
* [ ] Make sure epic is CONFIDENTIAL, if applicable (i.e. Analyst Reports)
## Launch date: `to be added`
## [Pathfactory link]() - `to be added when live`
#### :key: Key Details
* **Analyst Relations DRI:**
* **Product Marketing DRI:**
* **Campaigns DRI:**
* **Official Content Name:**
* **Official Content Type:**
* **Primary Campaign:**
- [ ] DevSecOps platform
- [ ] Automated Software Delivery
- [ ] Security & Compliance
* **Primary Sales Segment:**
- [ ] Enterprise
- [ ] Mid-Market
- [ ] SMB
* **Primary Buying Stage:**
- [ ] Awareness
- [ ] Consideration
- [ ] Decision/Purchase
* **Primary Persona:**
* **Language:**
* **Budget:** <!-- Match to Allocadia -->
* **Marketo program name:** `YYYY_Type_VendorNameAsset` <!-- as content owner, you make this up. Follow structure, no spaces, keep it short - i.e. `2020_report_GartnerMQARO`. This will be used for MKTO/SFDC program. -->
* [ ] [main salesforce program]() - `to be added`
* [ ] [main marketo campaign]() - `to be added`
* [ ] [pathfactory track link]() - `link to PF track (the track in PF, not the live link) when created`
* [ ] [Pathfactory & Resource Page Copy]() - `doc to be added by Content Owner` ([use template here](https://docs.google.com/spreadsheets/d/1dKVIZGbbOLoR5BdCqXqCQ40qJlQNif9waTiHc8yWggQ/edit#gid=1837173931)
* [ ] UTMS: `utm_campaign=[add here]&utm_content=[add here]`
#### :dart: Timeline / Promotional asset list (add links when completed) and DRIs:
Adjust list as applicable for each report activation:
* [ ] 2023-xx-xx add report to **Pathfactory** `@DRI`
* [ ] 2023-xx-xx **landing page** live `@DRI`
* [ ] 2023-xx-xx add to [Analyst research page](https://about.gitlab.com/analysts/) `@DRI`
* [ ] 2023-xx-xx report live on [**resources page**](https://about.gitlab.com/resources/) `@DRI`
* [ ] 2023-xx-xx publish **blog** `@DRI`
* [ ] 2023-xx-xx publish **commentary page** `@DRI`
* [ ] 2023-xx-xx add on **website pages** (solution pages, homepage) `@DRI`
* [ ] 2023-xx-xx **press release** live `@DRI`
* [ ] Field Enablement `@DRI`
* [ ] 2023-xx-xx send **field FYI**
* [ ] 2023-xx-xx conduct **field enablement session**
* [ ] Organic social `@DRI`
* [ ] 2023-xx-xx **Facebook** post(s)
* [ ] 2023-xx-xx **LinkedIn** post(s)
* [ ] 2023-xx-xx **Twitter** post(s)
* [ ] **Executive social sharing** posts `@DRI`
* [ ] 2023-xx-xx add to **Highspot** `@DRI`
* [ ] 2023-xx-xx add to **Intelligent email nurture** `@DRI`
* [ ] 2023-xx-xx add to **paid digital** `@DRI`
### :books: Issues to Create & Tasks to complete
Adjust list as applicable for each report activation. [Use the workback timeline calculator to assign correct due dates based off of launch date](https://docs.google.com/spreadsheets/d/1RvYLEUJvh9QZJZX1uXiKJPcOOSGd7dEeNneqyA2bt3A/edit#gid=969067029)
**Analyst relations** `@DRI`
* [ ] Provide reprint link and expiration date
* [ ] Secure analyst citation review / approval
* [ ] [Open Analyst Report Commentary Page Issue](https://gitlab.com/gitlab-com/marketing/strategic-marketing/product-marketing/-/issues/new?issuable_template=AR-Commentary-Page)
* [ ] Add to the open Product Marketing / Field Communications Planning epic (see [handbook entry](https://about.gitlab.com/handbook/sales/field-communications/#recurring-announcements) for more detail & link to latest epic)
**Product Marketing** `@DRI`
* [ ] Add to HighSpot
* [ ] [Open PR Announcement Issue](https://gitlab.com/gitlab-com/marketing/corporate_marketing/corporate-marketing/issues/new?issuable_template=announcement)
* [ ] [Open Blog Issue](https://gitlab.com/gitlab-com/marketing/inbound-marketing/global-content/content-marketing/issues/new#?issuable_template=blog-post-pitch)
* [ ] Open MR to add to add to web pages (e.g. solutions pages, homepage etc.)
* [ ] Open issue for executive social sharing
**Campaign Manager** `@DRI`
* [ ] Add to [SSoT Marketing Calendar](https://docs.google.com/spreadsheets/d/1fyrC4O1e13QTRNmYR3H5rMZIoIJcPk93vltOCx0ubjk/edit#gid=571560493)
* [ ] [Open Pathfactory upload Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/campaigns/-/issues/new?issuable_template=request-pathfactory-upload)
* [ ] [Open Nurture Email Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/campaigns/-/issues/new?issuable_template=add-to-intelligent-email-nurture)
* [ ] [Open Resource Page Addition Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/campaigns/-/issues/new?issuable_template=request-resource-page-addition)
* [ ] [Open Expiration Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/campaigns/-/issues/new?issuable_template=campaigns-expire-analyst)
* [ ] [Open Landing Page Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/campaigns/-/issues/new?issuable_template=request-content-landing-page) - Assign to Content & Campaigns _(only if promoting via Facebook and Google AdWords)_
* [ ] [Open Digital Marketing Promotion Issue](https://gitlab.com/gitlab-com/marketing/demand-generation/digital-marketing/-/issues/new?issuable_template=paid-digital-request)
* [ ] [Open Organic Social Issue](https://gitlab.com/gitlab-com/marketing/corporate_marketing/corporate-marketing/-/issues/new?issuable_template=social-general-request)
</details>
/label ~"Analyst Relations" ~"Gated Content" ~"mktg-demandgen" ~"dg-campaigns" ~"mktg-status::wip"
Note from @aoetama
: open issue to investigate how to leverage Pathfactory to automatically tap into all content for a better user experience and more efficient process on the GitLab side.
Add [resource name] to Resources page
, rename your target branch, leave "start a new merge request with these changes" and click "Commit Changes"@aoetama
@aoetama
that the MR is ready to mergeNote: For ungated journeys, the URL drives to the PF asset/track, instead of a landing page.
Code:
- title: 'Add name of resource - shorten if necessary'
url:
image: /images/resources/security.png
type: 'eBook'
topics:
-
-
solutions:
-
-
teaser: 'Add a teaser that relates to the contents of the resource'
Example:
- title: '10 Steps Every CISO Should Take to Secure Next-Gen Software'
url: /resources/ebook-ciso-secure-software/
image: /images/resources/security.png
type: 'eBook'
topics:
- DevSecOps
- Security
solutions:
- Security and quality
teaser: 'Learn the three shifts of next-gen software and how they impact security.'
IMAGES to choose from (select one): *Shortcuts to Images Folder
/images/resources/cloud-native.png
/images/resources/code-review.png
/images/resources/continuous-integration.png
/images/resources/devops.png
/images/resources/git.png
/images/resources/gitlab.png
/images/resources/security.png
/images/resources/software-development.png
/images/resources/resources-gitops.png
TOPICS to choose from (add all that apply):
Note from @aoetama: let's see if we can align this with topics in Pathfactory for efficiency (if we don't go the route of Pathfactory explore page).
At times, we will extend the rights to an asset if it is heavily used by sales or performing in campaigns. In that case the decision is indicated in the Expiration Issue.
Follow the steps outlined in the Pathfactory Content Library Handbook.
An Expiration Issue will be opened by the Campaign Manager DRI for each analyst asset, and related to the overarching Epic (with due date for when the asset is set to expire). When the decision is made to expire the asset, the teams involved will check off their respective action items in the issue.
First you will remove the form from the page and add a "no longer available" message
2column Visibility
and switch to "Hidden"2column Sidebar
and switch to "No Sidebar"flex1 Visibility
and switch to "Visible"<h1>This resource is no longer available.</h1>
<p>Thank you for your interest in this resource, but it is no longer available for download. <a href="https://about.gitlab.com/analysts/" target="_blank" id="">Click here to visit our industry analysts page to view other reports and best practices!</a></p>
Please follow the process outlined in the Emails/Nurture Handbook.
Please follow the process outlined in the Pathfactory Handbook.
!!! REMINDER: We are using ungated content journeys via Pathfactory. This process should only be used for specific scenarios, and used sparingly.
:exclamation: Dependencies: delivery of final asset, completion of final landing page copy, and final asset added to pathfactory and placed in a track must be complete before setting up the Marketo program.
The TL;DR of what you'll do:
Salesforce campaign sync
> click "not set" and choose "Create New" from dropdown) - leave the name as auto-populates, and add the epic url to the description and "Save"{{my.bullet1}}
- bullet copy with approved character limits{{my.bullet2}}
- bullet copy with approved character limits{{my.bullet3}}
- bullet copy with approved character limits{{my.bullet4}}
- bullet copy with approved character limits{{my.contentDescription}}
- 2-3 sentences with approved character limits, this will show up in page previews on social and be used in Pathfactory description.{{my.contentDownloadURL}}
- skip updating in initial registration page setup (update during on-demand switch), Pathfactory link WITHOUT the https://
NOR the email tracking part (lb_email=
)
learn.gitlab.com/gartner-voc-aro/gartner-voc-aro
- the code in the Marketo template assets will create the URL https://learn.gitlab.com/gartner-voc-aro/gartner-voc-aro?lb_email={{lead.email address}}&{{my.utm}}
{{my.contentEpicURL}}
- no longer used in automation, but helpful for reference{{my.contentSubtitle}}
- content subtitle to display to viewer (throughout landing page, emails, etc.){{my.contentTitle}}
- content title to display to viewer (throughout landing page, emails, interesting moments, etc.), with approved character limits{{my.contentType}}
- content type to display to viewer (throughout landing page, emails, interesting moments, etc.){{my.contentTypeSFDC}}
- pick from following list (critical to avoid Marketo > SFDC sync errors): whitepaper, report, video, eBook, general{{my.emailConfirmationButtonCopy}}
- leave as Download
(but can be updated if needed){{my.formButtonCopy}}
- leave as Download now
(but can be updated if needed){{my.formHeader}}
- leave as Free Instant Download:
(but can be updated if needed){{my.formSubhead}}
- form subhead (not currently used for gated content landing page to try to keep form shorter){{my.heroImage}}
- image to display above landing page form (options in Marketo here){{my.introParagraph}}
- intro paragraph to be used in landing page and nurture email, with approved character limits{{my.or}}
- leave as ?
(but can be updated to &
if during Pathfactory upload, the custom URL slugs were not applied to both the asset and the track). If this is not correctly applied and there are multiple ?
question marks in the URL, it will break. WATCH THE VIDEO EXPLAINER{{my.socialImage}}
- image that would be presented in social, slack, etc. preview when the URL is shared, this image is provided by design/social, leave the default unless presented with webcast specific image.{{my.utm}}
- this should match the aligned campaign utm{{my.valueStatement}}
token with the short value statement on what the viewer gains from the webcast, this ties into the follow up emails and must meet the max/min requirements of the character limit checkerresources-type-name-of-asset
, i.e. resources-ebook-ci-best-practices
)resources-type-name-of-asset-thank-you
, i.e. resources-ebook-ci-best-practices-thank-you
)"Throw away" existing url
selected and click saveElements
right click on the Form Custom
element and click "Edit"Follow-up page
, clear out the automatic reference to the template, and start to type in your program name - the approved thank you page should show up. Choose your thank you pageLanding Page Actions
> "Approve and Close"01 Downloaded Content
smart campaignSmart List
Fills out Form
is set to Form Name
is any, Web Page
is (the name of your landing page). This should already be set properly.Fills out Form
should be set to Form Name
is "Form 2074: PF General". In Referrer
contains, enter the Pathfactory asset name slug. For example guide-to-devops
.Fills out Form
should be set to Form Name
is "Pathfactory Webhook". In Referrer
contains, enter the Pathfactory asset name slug. For example guide-to-devops
.Filled Out Form
should already be set properly. This will be Form Name
is any. Web Page
is (the name of your landing page).Filled Out Form
should be set to Form Name
is "Form 2074: PF General". In Referrer
contains, enter the Pathfactory asset name slug. For example guide-to-devops
.Filled out Form
should be set to Form Name
is "Pathfactory Webhook". In Referrer
contains, enter the Pathfactory asset name slug. For example guide-to-devops
. Date of Activity
should already be set to in the past 1 hour.Pathfactory Engagement Time
greater than 60 is set as the default. 60 is the Pathfactory view threshold for eBooks and Whitepapers. If your content falls into this category, no updates are necessary. Any other content types should be updated with the threshold outlined under Pathfactory Scoring. For example, if you are creating an analyst report, you will enter 120 instead of 60.1 or 2 or (3 and 4)
Campaign Owner
should be the campaign creatorActive
field should be checkedDescription
must include the epic url, best practice to include the registration page URLStart Date
should be date of launchEnd Date
should be one year laterBudgeted Cost
is required, if cost is $0 list 1
in the Budgeted Cost
field - NOTE there needs to be at least a 1 value here for ROI calculations, otherwise, when you divide the pipeline by 0
you will always get 0
as the pipe2spend calculation.Bizible Touchpoints Enabled
leave this blank (because this would be an online touchpoint)&lb_email=[email submitted in form]
)&lb_email=[email submitted in form]
)To be completed by the content owner if Pathfactory access is granted. If no access, please open an issue in Campaigns team based on epic category above.
Add to /downloads/ repository (only available and recommended for assets under 2 MB size)
The purpose of this step is to make it possible to flip the autoresponder if Pathfactory were to have an outtage, at which point, we would still have the PDF version available in Marketo for a quick turnaround.
[asset-type]-short-name-asset
, ex: ebook-agile-delivery-models
resource/download
directorywww-gitlab-com / sites / marketing / source / resources / +
, click the plus drop down and select "Upload File"Upload [Asset Type]: [Asset Name]
, check box for "create new merge request", name your merge request, and click "Upload file"@aoetama
and click "Submit Merge Request"pdfVersion
My Token, add the naming convention above which will be available when the MR is merged. (the token should look like https://about.gitlab.com/resources/downloads/add-file-name-here.pdf
)