Product Qualified Lead(PQL) 開発者ガイドライン

Product Qualified Lead(PQL) ファネルはユーザーとチームメンバーをつなぎます。PQLの製品原則の詳細をお読みください。

ハンドレイズPQLとは、製品内から営業に話をしたいとリクエストするユーザーのことです。

開発者の環境設定

  1. ローカルのCustomersDotインスタンスに接続してGDKをセットアップします。
  2. CustomersDotをWorkatoのステージングインスタンスに接続するように設定します。

  3. 標準のインストール手順を使用してCustomersDotをセットアップします。
  4. 環境変数CUSTOMER_PORTAL_URL をCustomersDotインスタンスの内部(またはngrok)URLに設定します。
  5. export CUSTOMER_PORTAL_URL='https://XXX.ngrok.io/' をシェルrc スクリプト (~/.zshrc または~/.bash_profile または~/.bashrc) に配置し、GDK を再起動します。
  6. CustomersDot開発からWorkatoへの認証情報を/config/secrets.yml に入力し、再起動します。Workato ステージング用の認証情報は、1Password サブスクリプション ポータル ヴォールトにあります。ステージングのURLはhttps://apim.workato.com/gitlab-dev/services/marketo/lead です。
  workato_url: "<%= ENV['WORKATO_URL'] %>"
  workato_client_id: "<%= ENV['WORKATO_CLIENT_ID'] %>"
  workato_client_secret: "<%= ENV['WORKATO_CLIENT_SECRET'] %>"

リードモニタリングのセットアップ

  1. このリクエスト例と同様に、Marketoサンドボックスへのアクセスを設定します。

リードの手動テスト

  1. ローカルの GitLab インスタンスに一意の電子メールを持つユーザーを新規登録します。
  2. 新しいフォームを送信するか、新しいトライアルやハンドレイズリードを作成して、PQLリードを送信してください。
  3. Workatoステージングで簡単に確認できる識別しやすい値を使用してください。
  4. Workatoのステージングインスタンスのエントリを観察し、マージリクエストコメントと言及を貼り付けます。

トラブルシューティング

  • gitlab.com 、CustomersDotのアプリケーションとSidekiqのログをチェックし、リードを監視します。
  • CustomersDotのleads テーブルを確認してください。
  • このリクエスト例に対して、Marketo Sandboxへのアクセスを要求し、そこでリードを検証します。

ハンドレイズリードフォームの埋め込み

HandRaiseLeadButtonは、任意の画面にボタンとハンドレイズモーダルを追加する再利用可能なコンポーネントです。

以下の方法でハンドレイズリードボタンをインポートできます。

import HandRaiseLeadButton from 'ee/hand_raise_leads/hand_raise_lead/components/hand_raise_lead_button.vue';

export default {
  components: {
    HandRaiseLeadButton,
...
</script>

<template>

<hand-raise-lead-button />

ハンドレイズリードフォームはprovideまたはinjectで以下のパラメータを受け付けます。

    provide: {
      small,
      user: {
        namespaceId,
        userName,
        firstName,
        lastName,
        companyName,
        glmContent,
      },
      ctaTracking: {
        action,
        label,
        property,
        value,
        experiment,
      },
    },

ctaTracking パラメータは、Snowplow トラッキングを実装するための data-track 属性 に従います。提供されたトラッキング属性は、HandRaiseLeadButton コンポーネント内部のボタンにアタッチされ、選択されるとハンドレイズリードモーダルがトリガーされます。

リード位置の監視

新しい挙手フォームを埋め込む場合は、既存の値とは異なる一意のglmContent またはglm_content フィールドを使用してください。

現在、glm_content の値を使用しています:

glm_content備考
discover-group-securityこの値は、グループセキュリティ機能検出ページで使用されます。
discover-group-security-pqltestこの値は、3つのCTAを使用したグループセキュリティ機能発見ページの実験で使用されます。
discover-project-securityこの値はプロジェクトのセキュリティ機能発見ページで使用されます。
discover-project-security-pqltestこの値は、3つのCTAを持つプロジェクトセキュリティ機能発見ページ実験で使用されます。
group-billingこの値はグループ請求ページで使用されます。
trial-status-show-groupこの値はネームスペースにアクティビティトライアルがある場合、左上のナビで使用されます。

コンポーネントのテスト

Jest テストでは、コンポーネントの存在をテストすることができます。

expect(wrapper.findComponent(HandRaiseLeadButton).exists()).toBe(true);

PQL リードフロー

PQLリードの流れは以下の通りです:

  1. ユーザーがHandRaiseLeadButton コンポーネントgitlab.com でトリガーします。
  2. HandRaiseLeadButton は任意の情報を以下のAPIエンドポイントに送信します:/-/subscriptions/hand_raise_leads
  3. そのエンドポイントは、CustomersDottrials/create_hand_raise_lead のエンドポイントにフォームをリポストします。
  4. CustomersDot はフォームデータをleads テーブルに記録し、Workatoにフォームをポストします。
  5. Workato はフォームを Marketo に送信します。
  6. Marketoはスコアリングを行い、フォームをSalesforceに送信します。
  7. 営業チームはSalesforceを使用してリードに接続します。

トライアルリードの流れ

GitLab.comでのトライアルリードの流れ

sequenceDiagram Trial Frontend Forms ->>TrialsController#create_lead: GitLab.com frontend sends [lead] to backend TrialsController#create->>CreateLeadService: [lead] TrialsController#create->>ApplyTrialService: [lead] Apply the trial CreateLeadService->>SubscriptionPortalClient#generate_trial(sync_to_gl=false): [lead] Creates customer account on CustomersDot ApplyTrialService->>SubscriptionPortalClient#generate_trial(sync_to_gl=true): [lead] Asks CustomersDot to apply the trial on namespace SubscriptionPortalClient#generate_trial(sync_to_gl=false)->>CustomersDot|TrialsController#create(sync_to_gl=false): GitLab.com sends [lead] to CustomersDot SubscriptionPortalClient#generate_trial(sync_to_gl=true)->>CustomersDot|TrialsController#create(sync_to_gl=true): GitLab.com asks CustomersDot to apply the trial

CustomersDotでのトライアルリードの流れ (sync_to_gl)

sequenceDiagram CustomersDot|TrialsController#create->>HostedPlans|CreateTrialService#execute: Save [lead] to leads table for monitoring purposes HostedPlans|CreateTrialService#execute->>BaseTrialService#create_account: Creates a customer record in customers table HostedPlans|CreateTrialService#create_lead->>CreateLeadService: Creates a lead record in customers table HostedPlans|CreateTrialService#create_lead->>Workato|CreateLeadWorker: Async worker to submit [lead] to Workato Workato|CreateLeadWorker->>Workato|CreateLeadService: [lead] Workato|CreateLeadService->>WorkatoApp#create_lead: [lead] WorkatoApp#create_lead->>Workato: [lead] is sent to Workato

CustomersDotのネームスペースへのトライアルの適用

sequenceDiagram HostedPlans|CreateTrialService->load_namespace#Gitlab api/namespaces: Load namespace details HostedPlans|CreateTrialService->create_order#: Creates an order in orders table HostedPlans|CreateTrialService->create_trial_history#: Creates a record in trial_histories table

ハンドレイズ・リードフロー

GitLab.comでのハンドレイズフロー

sequenceDiagram HandRaiseForm Vue Component->>HandRaiseLeadsController#create: GitLab.com frontend sends [lead] to backend HandRaiseLeadsController#create->>CreateHandRaiseLeadService: [lead] CreateHandRaiseLeadService->>SubscriptionPortalClient: [lead] SubscriptionPortalClient->>CustomersDot|TrialsController#create_hand_raise_lead: GitLab.com sends [lead] to CustomersDot

CustomersDotでのハンドレイズの流れ

sequenceDiagram CustomersDot|TrialsController#create_hand_raise_lead->>CreateLeadService: Save [lead] to leads table for monitoring purposes CustomersDot|TrialsController#create_hand_raise_lead->>Workato|CreateLeadWorker: Async worker to submit [lead] to Workato Workato|CreateLeadWorker->>Workato|CreateLeadService: [lead] Workato|CreateLeadService->>WorkatoApp#create_lead: [lead] WorkatoApp#create_lead->>Workato: [lead] is sent to Workato

すべてのリードタイプに対するWorkato後のPQLフロー

sequenceDiagram Workato->>Marketo: [lead] Marketo->>Salesforce(SFDC): [lead]