Skip to content

Marketing handbook: Restructuring and corporate marketing deprecation

Description

The corporate marketing team is being deprecated, and the marketing teams are reorganized. The main motivation is to move team handbooks that would be deleted in /handbook/marketing/corporate-marketing and help create a new proposed structure. This exercise does not touch existing handbooks such as /handbook/marketing/field-marketing.

There are suggestions and discussion threads to clean things up, and this issue is to consolidate work items and collect feedback from team DRIs.

Note: Reviewing and updating the marketing handbook pages for accuracy is a separate step by team DRIs. This includes fixing broken external URLs for example.

Analysis

The current handbook structure for teams in sites/handbook/source/handbook/marketing is below, removing all non-team directories in the view.

tree -L 1 sites/handbook/source/handbook/marketing                                                                                   ─╯
sites/handbook/source/handbook/marketing
├── account-based-marketing
├── channel-marketing
├── community-relations
├── corporate-marketing
├── demand-generation
├── digital-experience
├── events
├── field-marketing
├── growth
├── inbound-marketing
├── integrated-marketing
├── lifecycle-marketing
├── marketing-operations
├── marketing-strategy-and-platforms
├── strategic-marketing
├── revenue-marketing
├── smb-marketing

Suggested changes

Following the marketing front page re-organization in !111847 (diffs)

The GitLab Marketing team includes multiple Departments organized as: Product Marketing, Integrated Marketing, Sales Development, Marketing Strategy and Platforms, Community Relations, and Corporate Communications.

Approved by Ashley in Slack.

Tasks

Renaming Changes

See change strategy for technical details.

General changes

Cleanup and Incoming Updates

Outdated pages list (note: incomplete. needs automation to find pages that have not been updated in 1 year for example)

Proposal

Update the handbook structure as follows:

tree -L 1 sites/handbook/source/handbook/marketing                                                                                   ─╯
sites/handbook/source/handbook/marketing
├── account-based-marketing
├── channel-marketing
├── community-relations

- ├── corporate-marketing

+ ├── corporate-communications
    ├── resources-trainings
    ├── incident-communications-plan
    └── speaking-resources

├── demand-generation
├── digital-experience
├── events
├── field-marketing
├── growth
- ├── inbound-marketing

├── integrated-marketing
+   ├── corporate-events
+   ├── digital-strategy
+       ├── social-marketing
+       ├── search-marketing 

├── lifecycle-marketing
├── marketing-operations
├── marketing-strategy-and-platforms

- ├── strategic-marketing
+ ├── brand-and-product-marketing
    ├── design
    ├── content
    ├── brand-activation
    └── merchandise-handling

- ├── revenue-marketing
-   ├── sdr
+ ├── sales-development

├── smb-marketing

Strategic Marketing to Brand and Product Marketing

Change MR: !115464 (merged)

sites/handbook/source/handbook/marketing/strategic-marketing

Suggested changed structure:

/handbook/marketing/brand-and-product-marketing - new page, from https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/13991#note_1116121144 

├── Brand (moved from CM handbook, new page)
    ├── brand-activation (from https://about.gitlab.com/handbook/marketing/corporate-marketing/brand-activation/)
    └── merchandise-handling (from https://about.gitlab.com/handbook/marketing/corporate-marketing/merchandise-handling/)
├── Design (from https://about.gitlab.com/handbook/marketing/corporate-marketing/brand-activation/brand-design/)
├── Content (from https://about.gitlab.com/handbook/marketing/inbound-marketing/content/)
├── Product and Solution Marketing (from https://about.gitlab.com/handbook/marketing/strategic-marketing/)
    ├── core-product-marketing (from https://about.gitlab.com/handbook/marketing/strategic-marketing/pmmteam/)
    ├── competitive-intelligence (from https://about.gitlab.com/handbook/marketing/strategic-marketing/competitive/)
    ├── customer-advocacy (from https://about.gitlab.com/handbook/marketing/strategic-marketing/customer-reference-program/) 
    ├── market-insights (from https://about.gitlab.com/handbook/marketing/strategic-marketing/market-insights/ - suggest keeping the handbooks separated)
    ├── analyst-relations (from https://about.gitlab.com/handbook/marketing/strategic-marketing/analyst-relations/ - suggest keeping the handbooks separated) 
    ├── technical-marketing (from https://about.gitlab.com/handbook/marketing/strategic-marketing/technical-marketing/)

Create page stub based on proposal in #13991 (comment 1116121144)

CLI commands for the change, prepared.

Click to expand
cd sites/handbook/source/handbook

mkdir -p marketing/brand-and-project-marketing
cat <<EOF >marketing/brand-and-project-marketing/index.html.md
EOF 

# move design (before brand, order is important)
git mv marketing/corporate-marketing/brand-activation/brand-design marketing/brand-and-project-marketing/design

# create brand
mkdir -p marketing/brand-and-project-marketing/brand

# move brand handbooks 
git mv marketing/corporate-marketing/brand-activation marketing/brand-and-project-marketing/brand/brand-activation
git mv marketing/corporate-marketing/merchandise-handling marketing/brand-and-project-marketing/brand/merchandise-handling 

# content
git mv marketing/inbound-marketing/content marketing/brand-and-project-marketing/content

# product and solution marketing
git mv marketing/strategic-marketing marketing/brand-and-product-marketing/product-and-solution-marketing 

# rename customer advocacy 
git mv marketing/brand-and-product-marketing/customer-reference-program marketing/brand-and-product-marketing/customer-advocacy

# rename pmmteam
git mv marketing/brand-and-product-marketing/pmmteam marketing/brand-and-product-marketing/core-product-marketing


# persist changes to git commit
git add marketing/brand-and-project-marketing 

git commit -av -m "Restructure Brand and Product Marketing handbook, step 1"
# Update data/redirects.yml with the structure, to prepare the find/sed patterns too 

- sources:
    - /handbook/marketing/corporate-marketing/brand-activation
    - /handbook/marketing/corporate-marketing/brand-activation/
  target: /handbook/marketing/brand-and-product-marketing/brand/brand-activation/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/brand-activation/brand-standards
    - /handbook/marketing/corporate-marketing/brand-activation/brand-standards/
  target: /handbook/marketing/brand-and-product-marketing/brand/brand-activation/brand-standards/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/brand-activation/trademark-guidelines
    - /handbook/marketing/corporate-marketing/brand-activation/trademark-guidelines/
  target: /handbook/marketing/brand-and-product-marketing/brand/brand-activation/trademark-guidelines/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/merchandise-handling
    - /handbook/marketing/corporate-marketing/merchandise-handling/
  target: /handbook/marketing/brand-and-product-marketing/brand/merchandise-handling/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/merchandise-handling/giveaways
    - /handbook/marketing/corporate-marketing/merchandise-handling/giveaways/
  target: /handbook/marketing/brand-and-product-marketing/brand/merchandise-handling/giveaways/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/brand-activation/brand-design
    - /handbook/marketing/corporate-marketing/brand-activation/brand-design/
  target: /handbook/marketing/brand-and-product-marketing/design/
  comp_op: '='
- sources:
    - /handbook/marketing/inbound-marketing/content
    - /handbook/marketing/inbound-marketing/content/
  target: /handbook/marketing/brand-and-product-marketing/content/
  comp_op: '='
- sources:
    - /handbook/marketing/inbound-marketing/content/content-marketing
    - /handbook/marketing/inbound-marketing/content/content-marketing/
  target: /handbook/marketing/brand-and-product-marketing/content/content-marketing/
  comp_op: '='
- sources:
    - /handbook/marketing/inbound-marketing/content/digital-production
    - /handbook/marketing/inbound-marketing/content/digital-production/
  target: /handbook/marketing/brand-and-product-marketing/content/digital-production/
  comp_op: '='
- sources:
    - /handbook/marketing/inbound-marketing/content/editorial-team
    - /handbook/marketing/inbound-marketing/content/editorial-team/
  target: /handbook/marketing/brand-and-product-marketing/content/editorial-team/
  comp_op: '='
- sources:
    - /handbook/marketing/strategic-marketing
    - /handbook/marketing/strategic-marketing/
    - /handbook/marketing/product-marketing
    - /handbook/marketing/product-marketing/
  target: /handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/
  comp_op: '='
- sources:
    - /handbook/marketing/strategic-marketing/pmmteam
    - /handbook/marketing/strategic-marketing/pmmteam/
  target: /handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/core-product-marketing/
  comp_op: '='
- sources:
    - /handbook/marketing/strategic-marketing/competitive
    - /handbook/marketing/strategic-marketing/competitive/
  target: /handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/competitive-intelligence/
  comp_op: '='
- sources:
    - /handbook/marketing/strategic-marketing/customer-reference-program
    - /handbook/marketing/strategic-marketing/customer-reference-program/
  target: /handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/customer-advocacy/
  comp_op: '='
- sources:
    - /handbook/marketing/strategic-marketing/market-insights
    - /handbook/marketing/strategic-marketing/market-insights/
  target: /handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/market-insights/
  comp_op: '='
- sources:
    - /handbook/marketing/strategic-marketing/analyst-relations
    - /handbook/marketing/strategic-marketing/analyst-relations/
  target: /handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/analyst-relations/
  comp_op: '='
- sources:
    - /handbook/marketing/strategic-marketing/technical-marketing
    - /handbook/marketing/strategic-marketing/technical-marketing/
  target: /handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/technical-marketing/
  comp_op: '='

# continue with updating URLs - TODO (maybe write a rake script)

# IMPORTANT: Always replace the parent URLs last, otherwise they won't match 
# 1. Design was moved out of brand-activation
# Merchandise handling
# 2. Brand
# 3. Content
# 4. Strategic marketing
# 5. Final product marketing and solutions 

find sites/handbook/source/handbook -type f -name '*.md*' \
-exec sh -c 'sed -i "s,/handbook/marketing/corporate-marketing/brand-activation/brand-design,/handbook/marketing/brand-and-product-marketing/design,g;
s,/handbook/marketing/corporate-marketing/merchandise-handling,/handbook/marketing/brand-and-product-marketing/brand/merchandise-handling,g;

s,/handbook/marketing/corporate-marketing/brand-activation,/handbook/marketing/brand-and-product-marketing/brand/brand-activation,g;

s,/handbook/marketing/inbound-marketing/content,/handbook/marketing/brand-and-product-marketing/content,g;

s,/handbook/marketing/strategic-marketing/pmmteam,/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/core-product-marketing,g;
s,/handbook/marketing/strategic-marketing/competitive,/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/competitive-intelligence,g;
s,/handbook/marketing/strategic-marketing/customer-reference-program,/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/customer-advocacy,g;
s,/handbook/marketing/strategic-marketing/market-insights,/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/market-insights,g;
s,/handbook/marketing/strategic-marketing/analyst-relations,/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/analyst-relations,g;
s,/handbook/marketing/strategic-marketing/technical-marketing,/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/technical-marketing,g;

s,/handbook/marketing/strategic-marketing,/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing,g" {}' \;
bundle install

NO_CONTRACTS=true  bundle exec rake lint:handbook_links
NO_CONTRACTS=true  bundle exec rake lint:redirects_yml
NO_CONTRACTS=true  bundle exec rake lint:codeowners 

Fix remaining broken URLs - since linters now capture more broken URLs.

Rename Strategic Marketing to Product and Solution Marketing where applicable - in the marketing handbook, elsewhere this will break content flows with thorough reviews.

find sites/handbook/source/handbook/marketing -type f -name '*.md*' \
-exec sh -c 'sed -i "s,Strategic Marketing,Product and Solution Marketing,g;

" {}' \;

Corporate Marketing: Corporate Communications

Promote Corporate Communications to report to the CMO; reflect handbook structure.

Change MR: !115480 (merged)

This change requires the foundation work with the Brand and Product Marketing changes in !115464 (merged)

/handbook/marketing/corporate-communications (from https://about.gitlab.com/handbook/marketing/corporate-marketing/corporate-communications/)

├── incident-communications-plan (from https://about.gitlab.com/handbook/marketing/corporate-marketing/incident-communications-plan/)
├── social-marketing (from https://about.gitlab.com/handbook/marketing/corporate-marketing/social-marketing/)
├── speaking-resources (from https://about.gitlab.com/handbook/marketing/corporate-marketing/speaking-resources/)
└── resources-and-trainings (from https://about.gitlab.com/handbook/marketing/corporate-marketing/corporate-communications-resourses-trainings/)

All renames get redirects.

Click to expand 1. git mv marketing/corporate-marketing/corporate-communications marketing/corporate-communications (add redirects) 2. git mv marketing/corporate-marketing/corporate-communications-resourses-trainings marketing/corporate-communications/resources-trainings (add a redirect) 3. git mv marketing/corporate-marketing/incident-communications-plan marketing/corporate-communications/incident-communications-plan (add redirects) 4. git mv marketing/corporate-marketing/speaking-resources marketing/corporate-communications/speaking-resources (add redirects)

Update URLs, redirects, etc. see below

Click to expand
data/redirects.yml

- sources:
    - /handbook/marketing/corporate-marketing/corporate-communications
    - /handbook/marketing/corporate-marketing/corporate-communications/
  target: /handbook/marketing/corporate-communications/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/corporate-communications-resourses-trainings
    - /handbook/marketing/corporate-marketing/corporate-communications-resourses-trainings/
  target: /handbook/marketing/corporate-communications/resources-trainings/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/social-marketing
    - /handbook/marketing/corporate-marketing/social-marketing/
  target: /handbook/marketing/corporate-communications/social-marketing/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/incident-communications-plan
    - /handbook/marketing/corporate-marketing/incident-communications-plan/
  target: /handbook/marketing/corporate-communications/incident-communications-plan/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/speaking-resources
    - /handbook/marketing/corporate-marketing/speaking-resources/
  target: /handbook/marketing/corporate-communications/speaking-resources/
  comp_op: '='
find sites/handbook/source/handbook -type f -name '*.md*' \
-exec sh -c 'sed -i "s,/handbook/marketing/corporate-marketing/corporate-communications-resources-trainings,/handbook/marketing/corporate-communications/resources-trainings/,g;

s,/handbook/marketing/corporate-marketing/social-marketing,/handbook/marketing/corporate-communications/social-marketing,g;
s,/handbook/marketing/corporate-marketing/incident-communications-plan,/handbook/marketing/corporate-communications/incident-communications-plan,g;
s,/handbook/marketing/corporate-marketing/speaking-resources,/handbook/marketing/corporate-communications/speaking-resources,g;

s,/handbook/marketing/corporate-marketing/corporate-communications,/handbook/marketing/corporate-communications,g;
" {}' \;
bundle install

NO_CONTRACTS=true  bundle exec rake lint:handbook_links
NO_CONTRACTS=true  bundle exec rake lint:redirects_yml
NO_CONTRACTS=true  bundle exec rake lint:codeowners 

Corporate Marketing: Social Marketing

Move Social Marketing into Integrated Marketing > Digital Strategy.

/handbook/marketing/integrated-marketing 
├── digital-strategy (from https://about.gitlab.com/handbook/marketing/demand-generation/digital-marketing/)
├── digital-strategy/oscial-marketing (from https://about.gitlab.com/handbook/marketing/corporate-marketing/social-marketing/)

The changes below were performed after the initial move of social marketing to corporate communications, requested in !115480 (comment 1215286404) during review.

Click to expand

Shell history log for later self.



git mv sites/handbook/source/handbook/marketing/demand-generation/digital-marketing sites/handbook/source/handbook/marketing/integrated-marketing/digital-strategy

find sites/handbook/source/handbook -type f -name '*.md*' \
-exec sh -c 'sed -i "s,/handbook/marketing/demand-generation/digital-marketing,/handbook/marketing/integrated-marketing/digital-strategy,g;" {}' \;


git mv sites/handbook/source/handbook/marketing/integrated-marketing/digital-strategy/digital-marketing-management sites/handbook/source/handbook/marketing/integrated-marketing/digital-strategy/digital-strategy-management

find sites/handbook/source/handbook -type f -name '*.md*' \
-exec sh -c 'sed -i "s,/handbook/marketing/integrated-marketing/digital-strategy/digital-marketing-management,/handbook/marketing/integrated-marketing/digital-strategy/digital-strategy-management,g;" {}' \;

redirects

- sources:
    - /handbook/marketing/demand-generation/digital-marketing
    - /handbook/marketing/demand-generation/digital-marketing/
  target: /handbook/marketing/integrated-marketing/digital-strategy/
  comp_op: '='
- sources:
    - /handbook/marketing/demand-generation/digital-marketing/digital-marketing-management
    - /handbook/marketing/demand-generation/digital-marketing/digital-marketing-management/
    - /handbook/marketing/marketing-sales-development/online-marketing
    - /handbook/marketing/revenue-marketing/online-marketing
    - /handbook/marketing/marketing-sales-development/online-marketing/
    - /handbook/marketing/revenue-marketing/online-marketing/
    - /handbook/marketing/revenue-marketing/digital-marketing-programs/digital-marketing-management
    - /handbook/marketing/revenue-marketing/digital-marketing-programs/digital-marketing-management/
  target: /handbook/marketing/integrated-marketing/digital-strategy/digital-strategy-management/
  comp_op: '='
- sources:
    - /handbook/marketing/demand-generation/digital-marketing/agency
    - /handbook/marketing/demand-generation/digital-marketing/agency/
  target: /handbook/marketing/integrated-marketing/digital-strategy/agency/

codeowners

Social marketing

git mv sites/handbook/source/handbook/marketing/corporate-communications/social-marketing sites/handbook/source/handbook/marketing/integrated-marketing/digital-strategy/social-marketing

 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/admin/.gitkeep (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/admin/index.html.md (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/community-management/.gitkeep (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/community-management/index.html.md (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/index.html.md (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/open-source/.gitkeep (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/open-source/open-source-social.html.md (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/social-advocacy-curators/.gitkeep (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/social-advocacy-curators/index.html.md (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/social-reporting/.gitkeep (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/social-reporting/index.html.md (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/team-member-social-advocacy/.gitkeep (100%)
 rename sites/handbook/source/handbook/marketing/{corporate-communications => integrated-marketing/digital-strategy}/social-marketing/team-member-social-advocacy/index.html.md (100%)

find sites/handbook/source/handbook -type f -name '*.md*' \
-exec sh -c 'sed -i "s,/handbook/marketing/corporate-communications/social-marketing,/handbook/marketing/integrated-marketing/digital-strategy/social-marketing,g;" {}' \;

redirects

- sources:
    - /handbook/marketing/corporate-marketing/social-marketing
    - /handbook/marketing/corporate-marketing/social-marketing/
  target: /handbook/marketing/integrated-marketing/digital-strategy/social-marketing/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/social-marketing/open-source
    - /handbook/marketing/corporate-marketing/social-marketing/open-source/
  target: /handbook/marketing/integrated-marketing/digital-strategy/social-marketing/open-source/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/social-marketing/social-advocacy-curators
    - /handbook/marketing/corporate-marketing/social-marketing/social-advocacy-curators/
  target: /handbook/marketing/integrated-marketing/digital-strategy/social-marketing/social-advocacy-curators/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/social-marketing/social-reporting
    - /handbook/marketing/corporate-marketing/social-marketing/social-reporting/
  target: /handbook/marketing/integrated-marketing/digital-strategy/social-marketing/social-reporting/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/social-marketing/team-member-social-advocacy
    - /handbook/marketing/corporate-marketing/social-marketing/team-member-social-advocacy/
  target: /handbook/marketing/integrated-marketing/digital-strategy/social-marketing/team-member-social-advocacy/
  comp_op: '='
- sources:
    - /handbook/marketing/corporate-marketing/social-marketing
    - /handbook/marketing/corporate-marketing/social-marketing/
  target: /handbook/marketing/integrated-marketing/digital-strategy/social-marketing/

codeowners

Names

  • Digital Marketing Programs => Digital Strategy
  • Social Marketing location, and URLs
bundle install

NO_CONTRACTS=true  bundle exec rake lint:handbook_links
NO_CONTRACTS=true  bundle exec rake lint:redirects_yml
NO_CONTRACTS=true  bundle exec rake lint:codeowners 

Corporate Marketing: Corporate Events

Move Corporate Events into Integrated Marketing.

Change MR: !115480 (merged)

This change requires the foundation work with the Brand and Product Marketing changes in !115464 (merged)

/handbook/marketing/integrated-marketing 

├── corporate-events (from https://about.gitlab.com/handbook/marketing/corporate-marketing/corp-event-marketing/)

Move to integrated marketing. Rename.

  1. git mv marketing/corporate-marketing/corp-event-marketing marketing/integrated-marketing/corporate-events
  2. Update Integrated marketing homepage based on #13991 (comment 1115268864)
data/redirects.yml

- sources:
    - /handbook/marketing/corporate-marketing/corp-event-marketing
    - /handbook/marketing/corporate-marketing/corp-event-marketing/
  target: /handbook/marketing/integrated-marketing/corporate-events/
  comp_op: '='
find sites/handbook/source/handbook -type f -name '*.md*' \
-exec sh -c 'sed -i "s,/handbook/marketing/corporate-marketing/corp-event-marketing,/handbook/marketing/integrated-marketing/corporate-events,g;" {}' \;
bundle install

NO_CONTRACTS=true  bundle exec rake lint:handbook_links
NO_CONTRACTS=true  bundle exec rake lint:redirects_yml
NO_CONTRACTS=true  bundle exec rake lint:codeowners 

Corporate Marketing: Brand Activation

Move to Product Marketing handbook. See #13991 (closed)

Corporate Marketing Change Overview

sites/handbook/source/handbook/marketing/corporate-marketing

tree -L 1 sites/handbook/source/handbook/marketing/corporate-marketing                                                               ─╯
sites/handbook/source/handbook/marketing/corporate-marketing
├── brand-activation
├── corp-event-marketing
├── corporate-communications
├── corporate-communications-resourses-trainings
├── incident-communications-plan
├── index.html.md
├── merchandise-handling
├── social-marketing
└── speaking-resources

TODO: Cleanup later.

Integrated Marketing Landing Page

Populate with all team handbooks, following the proposed structure in #13991 (comment 1115268864)

  • Rename handbooks
  • Review Codeowners
  • Add redirects

Notes in #13991 (comment 1219417015)

Integrated Marketing: Team handbooks

Move all team handbooks into /integrated-marketing/ and add redirects.

TODO.

Search Marketing: Move to Integrated Marketing, Digital Strategy

MR: !118009 (closed)

/handbook/marketing/integrated-marketing 

├── digital-strategy
    ├── search-marketing

     (from https://about.gitlab.com/handbook/marketing/inbound-marketing/search-marketing/)
Click to expand
cd sites/handbook/source/handbook/marketing
git mv inbound-marketing/search-marketing integrated-marketing/digital-strategy
data/redirects.yml

- sources:
    - /handbook/marketing/growth-marketing/inbound-marketing
    - /handbook/marketing/growth-marketing/inbound-marketing/
    - /handbook/marketing/inbound-marketing/search-marketing
    - /handbook/marketing/inbound-marketing/search-marketing/
  target: /handbook/marketing/integrated-marketing/digital-strategy/search-marketing/
  comp_op: '='
find sites/handbook/source/handbook -type f -name '*.md*' \
-exec sh -c 'sed -i "s,/handbook/marketing/inbound-marketing/search-marketing,/handbook/marketing/integrated-marketing/digital-strategy/search-marketing,g;" {}' \;
bundle install

NO_CONTRACTS=true  bundle exec rake lint:handbook_links
NO_CONTRACTS=true  bundle exec rake lint:redirects_yml
NO_CONTRACTS=true  bundle exec rake lint:codeowners 

Sales Development

MR: #13991 (closed)

  • Move /revenue-marketing/sdr to /sales-development
  • Deprecate Revenue Marketing /revenue-marketing
  • Add redirects, updates URLs
  • Update marketing handbook, main handbook page
/handbook/marketing/ 

├── sales-development 
Click to expand
cd sites/handbook/source/handbook/marketing
git mv revenue-marketing/sdr sales-development
git rm -rf revenue-marketing
data/redirects.yml

- sources:
    - /handbook/marketing/marketing-sales-development/sdr
    - /handbook/marketing/marketing-sales-development/sdr/
    - /handbook/marketing/marketing-sales-development
    - /handbook/marketing/marketing-sales-development/
    - /handbook/marketing/revenue-marketing
    - /handbook/marketing/revenue-marketing/
    - /handbook/marketing/revenue-marketing/sdr
    - /handbook/marketing/revenue-marketing/sdr/
    - /handbook/marketing/revenue-marketing/xdr
    - /handbook/marketing/revenue-marketing/xdr/
  target: /handbook/marketing/sales-development/
  comp_op: '='
find sites/handbook/source/handbook -type f -name '*.md*' \
-exec sh -c 'sed -i "s,/handbook/marketing/revenue-marketing/sdr,/handbook/marketing/sales-development,g;" {}' \;
bundle install

NO_CONTRACTS=true  bundle exec rake lint:handbook_links
NO_CONTRACTS=true  bundle exec rake lint:redirects_yml
NO_CONTRACTS=true  bundle exec rake lint:codeowners 

Fix all URL limiting errors, and remove the ignored linter in lib/linter/... for revenue-marketing.

Inbound Marketing

Other changes

Are these two the same?

├── marketing-operations
├── marketing-strategy-and-platforms

Change Strategy

MRs for each to reduce the potential merge conflicts, and review times.

  1. Review the structure, approve, and merge @brendan 's MR !111847 (merged)
  2. Start with Product Marketing changes
  3. Promote Corporate Communications and move handbooks from corporate marketing
  4. Move brand/swag to product marketing
  5. Move corp events to integrated marketing
  6. Finish - more changes in future issues

Filesystem changes

Don't wait for CI/CD pipelines to check the URLs and anchors. That's wasted time during renaming. Run the rake tasks in lib/tasks/lint.rake manually with

NO_CONTRACTS=true  bundle exec rake lint:handbook_links
NO_CONTRACTS=true  bundle exec rake lint:redirects_ym
NO_CONTRACTS=true  bundle exec rake lint:codeowners 

Ideas

Corporate Marketing deprecation needs more work items in www-gitlab-com

Impact

  • Review the changes to data/redirects.yaml to ensure that important redirects are in place, to keep bookmarks still accurate for team members
  • Renaming directories of team handbooks can impact existing MRs that target a specific structure of files. Suggestion: /rebase as quick action in MRs, or a manual rebase on the CLI.
    • On the other hand, a good way to review stale MRs and close some of the 2k open.
    • Optional: Write a script that checks branches for changed files, and adds an API automated note to MRs, noting the changed location, suggesting a rebase.
  • Renaming and updating URLs will trigger CI/CD Markdown lint checks that create additional work (many broken anchors into the product marketing handbook for example)

Review Tasks

  • Add redirects in data/redirects.yaml for all renames that affect bookmarks, to prevent 404 errors.
  • Open your 3-5 bookmarks and copy the relative URLs into the review app, verify that 3 random URLs on these pages work correctly.

Additional Tasks

Identify MRs that modify one of the changed paths in the handbook, and work with the authors to rebase/merge and help avoid any blockers on the way.

Script to automate: https://gitlab.com/dnsmichi/api-playground/-/tree/main/python#search-file-path-in-merge-requests

@dnsmichi is the DRI, list will be updated.

Click to expand

!112207 (merged)

These 2 MRs can be ignored, they are part of the changes.

Script output, 2022-12-13 6am PT. https://gitlab.com/dnsmichi/api-playground/-/tree/main/python#search-file-path-in-merge-requests

Comment template:

This MR will need a rebase once https://gitlab.com/gitlab-com/www-gitlab-com/-/merge_requests/115464 is merged as part of the marketing handbook re-organisation issue in https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/13991 

This can be done by running `/rebase` as a quick action in the MR comment, or running `git fetch && git rebase origin/master && git push --force` on the CLI. More in https://docs.gitlab.com/ee/topics/git/git_rebase.html 

Retrospective

Feedback

MRs that introduce changes are huge - make them smaller by only showing the content changes, and run URL updates, Codeowners, Redirects afterwards to minimize the review time.

@dnsmichi - doable but makes the process harder because the renaming with URLs is naturally there already. Maybe approve the content in a Google doc, and just go with re-org and automation and merge without approval?

There are more incoming sources that use URLs and anchors, for example the people onboarding issues. https://gitlab.com/gitlab-com/people-group/people-operations/employment-templates/-/merge_requests/2016

Results

#13991 (comment 1304504275)

cc @akramer @dsteer @cmaynard1 @nwoods1 @rclayman @khartline @johncoghlan

Edited by Michael Friedrich