Events help tracking what's happening in your marketplace account. Clazar provides visibility into everything on GCP Marketplace. Whether it's your listing getting published :page-facing-up: or a new contract getting created/renewed. Through events you get realtime notifications on when a buyer subscribed to your listing. You're notified on events through various channels, like slack, email and webhooks depending upon your Clazar account settings. You can also configure what events you want to get notified on. In case you missed any event, you can go to your Clazar account, navigate to Events panel and see all your events there. The panel facilitates you with filters you need to track down the journey of your contracts. Buyer events are linked to specific buyers, that you can easily navigate from events panel. You can also see such events on respective buyer screens.

Event parameters

An event contains a bunch of information. This information can be seen as either static or dynamic information. Static information characterise an event, like what kind of event it is and how created this event, whether it was driven by a change at GCP or was created in a user's journey on Clazar platform. While dynamic information is specific to that particular event, like which buyer bought a contract or which private offer got sent. Each event contains the following information.

Origin

Origin of an event tells you was it Clazar or GCP to initiate the change that triggered the event. There are a certain events that are caused by changes at GCP, like a contract getting renewed. While there are some events which are solely created by Clazar, like registration details being updated by the buyer. The possible values for GCP marketplace event origin are Clazar and GCP.

Suborigin

Suborigin of an event tells you what caused the event. The event can be driven by clazar receiving notification over pub/sub subscription from GCP, buyer registration flow or listing lifecycle management. Following are the possible values for suborigin.

  1. Pub/Sub
  2. Registration
  3. Listings

Topic

An event topic classifies what kind of event it is. On the basis of topic you can interpret what exactly changed in your GCP partner account. You can configure what events you receive via webhook using event topics. More information on topic is provided in the next section of this documentation.

Metadata

Metadata provides in-depth information of what an event denotes. Like in can a new contract is created you can refer to metadata for contract entitlements and other related information specific to that contract. In case a contract plan is changed you can use metadata to infer the new plan details as well as old plan details. Event from different topic can have different structure of metadata. More information is provided in the next section.

Timestamp

Timestamp is a Datetime parameter that denotes when exactly the event was triggered. You can use timestamp to track the journey of a contract or a specific transaction.

Event Details

Clazar offers in-depth monitoring on your listing. You get a variety of events related to the state of your listing or buyer contracts. Events are divided into multiple entities they relate to that can be inferred from event topics. Each variety of an event is represented by its topic. Depending upon your account configurations you recieve webhook, slack and email notification for these events. You can refer to the event details for each event topic and the corresponding slack message samples below.

:point-right: gcp.listing.submitted_to_clazar

This event is triggered when you/your team submits the listing. We'll now send the listing to GCP. Here's what receive in an event when a listing is submmitted.

πŸ“˜

Event Details

Origin: Clazar

Suborigin: Listings

Topic: gcp.listing.submitted_to_clazar

Text: Listing Submitted to Clazar

Description: Listing {listing-title} on GCP is submitted to Clazar.

Metadata:

Here's what you see on your slack channel:

:point-right: gcp.listing.waiting_on_gcp

This event is triggered when your listing is sent to GCP and now we await a revert from them. Here's what receive in an event when a listing is submmitted.

πŸ“˜

Event Details

Origin: Clazar

Suborigin: Listings

Topic: gcp.listing.waiting_on_gcp

Text: Listing Submitted to GCP

Description: Listing {listing-title} is submitted to GCP.

Metadata:

Here's what you see on your slack channel:

:point-right: gcp.listing.in_limited_state

This event means now the listing is in limited state and we can perform integration testing now. Here's what receive in an event when a listing is submmitted.

πŸ“˜

Event Details

Origin: GCP

Suborigin: Listings

Topic: gcp.listing.in_limited_state

Text: Listing in Limited State

Description: Listing {listing-title} is now published in Limited state on GCP.

Metadata:

Here's what you see on slack:

:point-right: gcp.listing.published

This event is triggered when a listing is published on GCP Marketplace. Time to celebrate πŸ₯³. Here are the event details:

πŸ“˜

Event Details

Origin: GCP

Suborigin: Listings

Topic: gcp.listing.published

Text: Listing Published in GCP

Description: Listing {listing-title} is now published on GCP Marketplace.

Metadata:

Here's what you see on slack:

You can checkout your live listing through the link sent in the above slack message.

:point-right: gcp.contract.pending

This event is triggered when a buyer buys your product through GCP Marketplace. A contract is created when the buyer buys a public offer or accepts a private offer you created for them. You can find plan details and validity in the event metadata. Here are the event details:

πŸ“˜

Event Details

Origin: GCP

Suborigin: Pub/Sub

Topic: gcp.contract.pending

Text: Contract Pending

Description: GCP contract created in pending activation state for listing {listing-title}.

Metadata:

{
  company_name: "Buyer Company Name",
  domain: "Buyer Domain",
  entitlement_id: "GCP Entitlement Id",
  account_id: "Buyer Account Id",
  email_id: "Buyer Email Id",
  plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term"
  }
}

Here's what you see on slack:

:point-right: gcp.contract.registered

This event is triggered when a buyer goes to SaaS registration page to configure their account after buying your product. The buyer registration details can be referred from the event metadata. Here are the event details:

πŸ“˜

Event Details

Origin: Clazar

Suborigin: Registration

Topic: gcp.contract.registered

Text: Registration Updated

Description: GCP buyer registration details updated for listing {listing-title}.

Metadata:

{
  company_name: "Buyer Company Name",
  domain: "Buyer Domain",
  entitlement_id: "GCP Entitlement Id",
  account_id: "Buyer Account Id",
  email_id: "Buyer Email Id",
  registration_details: [{
  	field: "Registration Field",
    value: "Field Value Buyer entered"
  }]
}

Here's what you see on slack:

:point-right: gcp.contract.activated

This event is triggered when a contract (gcp entitlement) is activated on the marketplace. Now the billing has started. When you approve a buyer contract through Clazar platform, we send a request to active the contract to GCP in case of public offer or private offers with automatic approval not set. In case automatic approval is set, the contract is activated soon after creation or on the start date you mentioned while sending a private offer. You can review the end date of a contract in event metadata. Here are the event details:

πŸ“˜

Event Details

Origin: GCP

Suborigin: Pub/Sub

Topic: gcp.contract.activated

Text: Contract Activated

Description: GCP contract activated for listing {listing-title}.

Metadata:

{
  company_name: "Buyer Company Name",
  domain: "Buyer Domain",
  entitlement_id: "GCP Entitlement Id",
  account_id: "Buyer Account Id",
  email_id: "Buyer Email Id",
  plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term",
    offer_end_time: "Offer End Time in YYYY-MM-DD HH:MM:SS format",
    offer_start_time: "Offer Start Time in YYYY-MM-DD HH:MM:SS format"
  }
}

Here's what you see on slack:

:point-right: gcp.contract.plan_change_initiated

This event is triggered when a contract plan change is request by your buyer or he accepts a private offer from you while a contract is going on. You can find the details regarding what the plan change is and when it will be effective in the event metadata. Here are the event details:

πŸ“˜

Event Details

Origin: GCP

Suborigin: Pub/Sub

Topic: gcp.contract.plan_change_initiated

Text: Contract Plan Change Initiated

Description: GCP contract plan change initiated for listing {listing-title}.

Metadata:

{
  company_name: "Buyer Company Name",
  domain: "Buyer Domain",
  entitlement_id: "GCP Entitlement Id",
  account_id: "Buyer Account Id",
  email_id: "Buyer Email Id",
  upcoming_plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term",
    offer_end_time: "Offer End Time in YYYY-MM-DD HH:MM:SS format",
    offer_start_time: "Offer Start Time in YYYY-MM-DD HH:MM:SS format"
  },
  current_plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term",
    offer_end_time: "Offer End Time in YYYY-MM-DD HH:MM:SS format",
    offer_start_time: "Offer Start Time in YYYY-MM-DD HH:MM:SS format"
  }
}

Here's what you see on slack:

:point-right: gcp.contract.plan_changed

This event is triggered once a contract plan change is done and the new plan is effective. The new plan may start immediately or at the end of billing cycle depending on multiple factors. In case the plan is upgraded in becomes effective immediately while in case it's downgraded, the old plan remains effective till the end of current billing cycle. In case of private offer, you can mention when exactly you want the new plan to start from. You can find details on both old and new plan in the event metadata. Here are the event details:

πŸ“˜

Event Details

Origin: GCP

Suborigin: Pub/Sub

Topic: gcp.contract.plan_changed

Text: Contract Plan Changed

Description: GCP contract plan changed for listing {listing-title}.

Metadata:

{
  company_name: "Buyer Company Name",
  domain: "Buyer Domain",
  entitlement_id: "GCP Entitlement Id",
  account_id: "Buyer Account Id",
  email_id: "Buyer Email Id",
  new_plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term",
    offer_end_time: "Offer End Time in YYYY-MM-DD HH:MM:SS format",
    offer_start_time: "Offer Start Time in YYYY-MM-DD HH:MM:SS format"
  },
  old_plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term",
    offer_end_time: "Offer End Time in YYYY-MM-DD HH:MM:SS format",
    offer_start_time: "Offer Start Time in YYYY-MM-DD HH:MM:SS format"
  }
}

Here's what you see on slack:

:point-right: gcp.contract.plan_change_canceled

In case a plan change is revoked by the buyer, you receive this event from us. You can refer to the canceled plan details in the event metadata. Here are the event details:

πŸ“˜

Event Details

Origin: GCP

Suborigin: Pub/Sub

Topic: gcp.contract.plan_change_canceled

Text: Contract Plan Change Canceled

Description: GCP contract plan change canceled for listing {listing-title}.

Metadata:

{
  company_name: "Buyer Company Name",
  domain: "Buyer Domain",
  entitlement_id: "GCP Entitlement Id",
  account_id: "Buyer Account Id",
  email_id: "Buyer Email Id",
  canceled_plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term",
    offer_end_time: "Offer End Time in YYYY-MM-DD HH:MM:SS format",
    offer_start_time: "Offer Start Time in YYYY-MM-DD HH:MM:SS format"
  },
  current_plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term",
    offer_end_time: "Offer End Time in YYYY-MM-DD HH:MM:SS format",
    offer_start_time: "Offer Start Time in YYYY-MM-DD HH:MM:SS format"
  }
}

:point-right: gcp.contract.renewed

This event is triggered when a contract is renewed. You can find the new expiration date of the contract in event metadata. Here are the event details:

πŸ“˜

Event Details

Origin: GCP

Suborigin: Pub/Sub

Topic: gcp.contract.renewed

Text: Contract Renewed

Description: GCP contract renewed for listing {listing-title}.

Metadata:

{
  company_name: "Buyer Company Name",
  domain: "Buyer Domain",
  entitlement_id: "GCP Entitlement Id",
  account_id: "Buyer Account Id",
  email_id: "Buyer Email Id",
  start_at: "Start time of the contract in YYYY-MM-DD HH:MM:SS format",
  end_at: "New end time of the contract in YYYY-MM-DD HH:MM:SS format",
  plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term",
    offer_end_time: "Offer End Time in YYYY-MM-DD HH:MM:SS format",
    offer_start_time: "Offer Start Time in YYYY-MM-DD HH:MM:SS format"
  }
}

:point-right: gcp.contract.canceled

This event is triggered when a contract is cancelled. It might have expired or the buyer may have cancelled it. You can find the last entitlements to find out what happen from the mentioned. Here are the event details:

πŸ“˜

Event Details

Origin: GCP

Suborigin: Pub/Sub

Topic: gcp.contract.canceled

Text: Contract Canceled

Description: GCP contract canceled for listing {listing-title}.

Metadata:

{
  company_name: "Buyer Company Name",
  domain: "Buyer Domain",
  entitlement_id: "GCP Entitlement Id",
  account_id: "Buyer Account Id",
  email_id: "Buyer Email Id",
  plan_details: {
  	plan_id: "Plan Id",
    offer_type: "Offer Type - Private/Public",
    offer_id: "Offer Id",
    offer_term: "Offer Term",
    offer_end_time: "Offer End Time in YYYY-MM-DD HH:MM:SS format",
    offer_start_time: "Offer Start Time in YYYY-MM-DD HH:MM:SS format"
  }
}

Here's what you see on slack: