LogoLogo
DocumentationWebsiteCommunityPortal
  • Get Started
    • Quickstart
    • Tutorials
    • Wizards
  • Features
    • Release Notes
      • 2024
        • 04-05 Apr Update
        • 03-27 Mar Update
        • 02-07 Feb Update
        • 01-23 Jan Update
        • 01-05 Jan Update
      • 2023
        • 12-18 Dec Update
        • 11-30 Nov Update
        • 10-30 Oct Update
        • 10-04 Oct Update
        • 09-18 Sep Update
        • 09-11 Sep Update
        • 08-28 Aug Update
        • 08-14 Aug Update
        • 07-23 July Update
        • 07-14 July Update
        • 06-16 June Update
        • 06-6 June Update
        • 05-16 May Update
        • 03-31 Mar Update
        • 03-16 Mar Update
        • 03-10 Mar Update
        • 02-07 Feb Update
        • 01-24 Jan Update
        • 01-10 Jan Update
      • 2022
        • 12-08 Dec Update
        • 11-13 Nov Update
        • 11-07 Nov Update
        • 10-26 Oct Update
        • 10-14 Oct Update
        • 10-01 Oct Update
        • 08-26 Aug Update
        • 08-02 Aug Update
        • 07-01 July Update
        • 06-08 June Update
        • 05-20 May Update
        • 05-05 May Update
        • 04-25 Apr Update
        • 02-11 Feb Update
        • 01-28 Jan Update
        • 01-10 Jan Update
      • 2021
        • 12-10 Dec Update
        • 12-01 Dec Update
        • 11-26 Nov Update
        • 11-17 Nov Update
        • 11-12 Nov Update
        • 11-09 Nov Update
        • 11-02 Nov Update
        • 10-26 Oct Update
        • 10-21 Oct Update
        • 10-14 Oct Update
        • 09-27 Sep Update
        • 08-31 Aug Update
        • 07-20 July Update
        • 07-02 July Update
        • 06-31 June Update
  • Metaverse
    • Building
      • Portal
        • Team Members
        • Defining Global Variables
      • Editor
        • File Manager
          • Selecting a file
          • Sketchfab Integration
        • Placement in 3D Space
        • Project Settings
          • Preferences
          • Branding
          • Collaborators
          • Menu
          • Variables in Settings
          • Lead Generation
          • Tour Mode
          • Advanced
          • E-Commerce in Settings
        • Preview
          • Headset Testing - WebXR Emulator
        • Viewport Properties
        • Editor Keyboard Shortcuts
      • Scenes
        • 3D Scene
          • Avatar System
          • Colliders
          • Zones
          • Lights
        • 360 Scene
        • Orbit Scene
      • Elements
        • Image
        • Video
        • Audio
        • GIF
        • Text to Speech
        • Character
        • Character AI
        • Actionbar
        • Timer
        • Polygon
        • Linked Popups
        • Variants
      • Rules
        • Shared Rules
        • How Rules Work
        • Number Variable Rules
        • String Variable Rules
        • Boolean Variable Rules
      • Variables
        • Autogenerated Variables
        • String Substitution
        • Capturing User Input
      • Build FAQs
    • Publishing
      • URL or QR Code
      • Embed on your Website
      • Full-Page HTML
      • Embedding within Apps
        • Android Embed
        • React Native Embed
      • Export as SCORM package
      • Authentication
        • SSO
        • Password With Expiry
        • Email with OTP
        • Custom List
        • Token
        • Load from another Experience
      • Publishing FAQs
      • Private Cloud Deployment
    • Multiplayer
      • Host Mode
      • Broadcast Mode
      • Voice Chat
      • Text Chat
      • Video Chat
      • Screenshare
      • Comments
      • Share Reactions
      • Notifications
      • Troubleshooting webcam and microphone
    • Analytics
      • Advanced Analytics
      • Leaderboard
      • Viewer Sessions
    • Integrations
      • GMetri with SCORM
        • Embed a SCORM package in a GMetri experience
      • Live Stream on GMetri
        • Live Stream Zoom on YouTube
        • Live Stream Zoom on Vimeo
          • Zoom Setup
      • E-Commerce with GMetri
        • Shopify Integration
        • WooCommerce Integration
        • Custom Integration
        • Using an E-Commerce Plugin
      • Adding a Chatbot
      • Sending data to GMetri Deployment
    • Viewing
      • Avatars
      • First/Third Person
      • Concurrency
      • Oculus Controls
      • Viewer Keyboard Shortcuts
      • IT Permissions
        • Whitelisting for Viewing Experiences
        • Whitelisting for Editing Experiences
        • Whitelisting for Analytics
        • Subprocessors
    • GMetri SDK
      • GMetri Player
      • GMetri SDK APIs
        • Project
        • Deployment
        • File
        • Viewer Group
      • GMetri Webhooks
      • API Token
      • Examples
  • Guidelines/Compatibility
    • Guidelines
      • Content Creation Guidelines
        • XR Experience Storyboard
        • 360 Degree Video Shoots
        • Avatars vs Characters
        • Designing 3D Models for Immersive VR mode
      • Asset Guidelines
        • 3D Models
          • Export GLB/GLTF from 3DS Max
          • Export GLB/GLTF from Blender
        • 360 Pano Images Render
        • Resources for Assets
        • Asset FAQs
        • Image Aspect Ratio
      • Experience Optimizations
        • Scene Optimizations
          • Performance Monitor
        • Image Optimizations
        • Audio Optimizations
        • Video Optimizations
        • 3D Model Optimizations
      • Workflows
        • Green Screen
          • Apply Green Screen to Videos
          • Accurate Color Selection
        • QR Code Scanner
        • Adding Sprites
        • Adding Background Music & Persistent Logo
        • EmbedHTML Snippets
    • Compatibility
      • Platform Requirements - Viewer
      • Platform Compatibility Matrix
      • Supported File Formats
      • Supported Browsers
      • Capture Network and Console Logs from Chrome Browser
    • Limitations
      • iOS Limitations
      • VR Mode Limitations
  • Platform
    • Billing
    • Platform FAQs
    • Security
    • Legal
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
Export as PDF
  1. Metaverse
  2. GMetri SDK

GMetri Webhooks

You can use Webhooks to get data from GMetri into your system/platform. Webhooks are supported for viewer's variable changes, session creations, and rule triggers.

GMetri Webhooks are pseudo real-time with a max delay of 60 seconds.

If there are a large number of responses, GMetri will batch responses in groups of 500, sent with a minimum gap of 200ms between consecutive queries.

GMetri doesn't have the ability to resend/retry webhooks incase of an error response.

Webhook Response

POST https://example.com/user/endpoint/gmetri-webhook

This webhook sends back an array of responses (viewer updates, session creation). Responses could be one of three types - variables, rules, session. Viewers are identified by their identifier, which depends on the authentication mechanism selected for the deployment.

Two inputs are needed from you to enable this webhook:

1) Webhook URL (POST API)

2) Webhook Basic Auth String (Any cryptographically secure string, >16 characters recommended)

Headers

Name
Type
Description

Authorization*

Basic <credentials>

Request Body

Name
Type
Description

type*

String

variables | rules | session

data*

JSON

WebhookData (described below)

type WebhookBody = {
  type: "variables" | "session" | "rules",
  data: { //WebhookData
    orgSlug: string,
    depSlug: string,    
    rows: (VariableWebhookData | SessionWebhookData | RuleWebhookData)[]
  }  
}
VariableWebhookData Type
type VariableWebhookData = {
  identifier: string,
  variables: Record<string, any>, //A map of variable name and value
};

Example Response with VariableWebhook:

Response Body
{
  type: "variables",
  data: {
    orgSlug: "gmetri",
    depSlug: "gmetridemo",
    rows: [{
      identifier: "amit@gmetri.com",
      variables: {
        score: 100,
        quizCompleted: true,
      }
    }, {
      identifier: "mitul@gmetri.com",
      variables: {
        score: 75,
        quizCompleted: false,
      }
    }]
  }
}
RuleWebhookData Type
type RuleWebhookData = {
  identifier: string,
  rules: {
    cid: number, //rule id
    cname: string, //rule name
    scene_name: string, //scene name where the rule was triggered
    timestamp: number, // epoch ms
  }[]
};

Example Webhook Response with RuleWebhook:

Response Body
{
  type: "rules",
  data: {
    orgSlug: "gmetri",
    depSlug: "gmetridemo",
    rows: [{
      identifier: "amit@gmetri.com",
      rules: [{
        cid: 1,
        cname: "Rule A",
        scene_name:  "scene 1",
        timestamp: 123456
      }]
    }, {
      identifier: "mitul@gmetri.com",
      rules: [{
        cid: 1,
        cname: "Rule A",
        scene_name:  "scene 2",
        timestamp: 123457
      }, {
        cid: 2,
        cname: "Rule C",
        scene_name:  "scene 2",
        timestamp: 123458
      }]
    }, {
      identifier: "amit@gmetri.com",
      rules: [{
        cid: 10,
        cname: "Rule G",
        scene_name:  "scene 4",
        timestamp: 234561
      }]
    }]
  }
}

SessionWebhookData Type
type SessionWebhookData = {
  identifier: string,
  session: Record<string, any>,
};

Example Response with VariableWebhook:

Response Body
{
  type: "session",
  data: {
    orgSlug: "gmetri",
    depSlug: "gmetridemo",
    rows: [{
      identifier: "amit@gmetri.com",
      session: {
        uuid: "12134-dffgs-2345-vfsd",
        browser: "CHROME",
        platform: "ANDROID,
        device_id: "123",
        created_at: 123455,
        modified_at: 123455,
      }
    }, {
      identifier: "mitul@gmetri.com",
      session: {
        uuid: "12134-dffgs-2345-vfsd",
        browser: "CHROME",
        platform: "ANDROID,
        device_id: "123",
        created_at: xyz,
        modified_at: xyz,
      }
    }, {
      identifier: "amit@gmetri.com",
      session: {
        uuid: "12134-3214-2345-vfsd",
        browser: "CHROME 1",
        platform: "IOS",
        device_id: "456",
        created_at: 123456,
        modified_at: 123456,
    }
  }]
}

PreviousViewer GroupNextAPI Token

Last updated 2 years ago

Was this helpful?