Meta tags:
description= Webhooks let your integrations take action in response to events that occur in Eppo.;
Headings (most frequently used words):
experiment, updated, webhook, webhooks, the, signature, configuration, events, flagging, configuring, metric, status, calculated, metrics, flag, integrating, and, verifying,
Text of the page (most frequently used words):
the (37), #signature (27), #webhook (23), experiment (19), updated (17), data (17), body (11), request (11), eppo (9), and (9), flag (9), configuration (9), when (8), experiment_key (8), experiment_id (8), webhooks (7), string (7), event (7), status (6), events (6), metric (5), this (5), crypto (5), you (5), api (4), reference (4), webhooksecret (4), const (4), from (4), boolean (4), secret (4), with (4), your (4), take (4), action (4), date (4), triggers (4), quickstart (4), application (3), flagging (3), metrics (3), page (3), types (3), are (3), example (3), function (3), return (3), req (3), hash (3), needs (3), integrations (3), meta_data (3), sdk (3), sdks (3), security (2), updates (2), integrating (2), verifying (2), configuring (2), calculated (2), rest (2), json (2), generate (2), number (2), 123 (2), will (2), use (2), timingsafeequal (2), note (2), process (2), res (2), isvalidwebhooksignature (2), expectedsignature (2), buffer (2), generatehmacsignature (2), update (2), here (2), node (2), get (2), need (2), that (2), done (2), only (2), user_email (2), any (2), sent (2), environments (2), good (2), solution (2), custom (2), display (2), most (2), state (2), success (2), failure (2), added (2), removed (2), based (2), architecture (2), introduction (2), concepts (2), contextual (2), analysis (2), copyright, 2026, inc, product, blog, links, previous, edit, ensure, preserved, before, stringifying, for, numeric, should, remain, not, coerced, into, result, incorrect, always, constant, time, comparison, like, comparing, signatures, prevent, timing, attacks, invalid, send, 401, webhook_secret, env, stringify, post, app, usage, express, route, handler, hex, digest, sha256, createhmac, import, typescript, compare, generated, received, hmac, sha, 256, verify, signed, object, once, contact, customize, support, admin, first, setup, url, side, receive, field, available, was, via, have, email_of_user_who_updated_flag, flag_key, key, flag_id, short, operation, visible, history, its, associated, models, such, assignments, targeting, rules, audiences, assignments_scan_end_date, assignments_scan_start_date, is_traffic_imbalance, time_taken_seconds, is_data_updated, is_manual_refresh, calculated_metrics, pipeline, run, irrespective, mode, trigger, manual, scheduled, changes, user, edits, collection, sends, four, want, certain, can, filter, just, interested, subscribing, their, type, let, response, occur, administration, statistics, debugging, migrations, advanced, experimentation, topics, metadata, engineering, tutorials, marketing, guides, using, pre, forking, servers, developer, tools, chrome, extension, best, practices, datadog, integration, elixir, ruby, rust, java, python, php, net, server, react, native, ios, dart, flutter, android, javascript, client, logging, keys, bandits, management, core, switchback, bandit, about, getting, started, search, demo, login, watch, recording, webinar, how, delivery, hero, uses, switchbacks, drive, marketplace, innovation, skip, main, content, docs,
Text of the page (random words):
webhooks the eppo docs skip to main content webinar how delivery hero uses switchbacks to drive marketplace innovation watch the recording here login get a demo search getting started about eppo analysis quickstart sdk quickstart contextual bandit quickstart switchback quickstart core concepts flag and experiment configuration data management experiment analysis contextual bandits sdks introduction architecture concepts sdk keys and environments event logging client sdks javascript android dart flutter ios react native server sdks node net php python java go rust ruby elixir datadog integration best practices eppo developer tools chrome extension using eppo sdk with pre forking servers guides introduction marketing integrations engineering tutorials metadata advanced experimentation topics migrations debugging metrics reference statistics administration architecture and security rest api webhooks reference webhooks on this page webhooks webhooks let your integrations take action in response to events that occur in eppo experiment webhook events this webhook is a good solution when a custom application needs to display or take action on the most up to date state of an experiment the webhook sends four types of experiment update events if you only want to take action based on certain types of events you can filter to just the events you are interested in subscribing to based on their event type in the request body experiment metric updated triggers when metric is added or removed metric collection is added or removed request body event experiment metric updated data experiment_id experiment_id experiment_key experiment_key signature signature experiment configuration updated triggers when user edits any configuration request body event experiment configuration updated data experiment_id experiment_id experiment_key experiment_key signature signature experiment status updated triggers when experiment s status changes request body event experiment status updated data experiment_id experiment_id experiment_key experiment_key signature signature experiment calculated metrics updated triggers when data pipeline run irrespective of success or failure and mode of trigger manual or scheduled request body event experiment calculated_metrics updated data experiment_id experiment_id experiment_key experiment_key meta_data status success failure is_manual_refresh boolean is_data_updated boolean time_taken_seconds number is_traffic_imbalance boolean assignments_scan_start_date date assignments_scan_end_date date signature signature flagging webhooks the flagging webhook is a good solution when a custom application needs to display or take action on the most up to date state of a flag flag configuration updated this webhook is sent when a flag or its associated models such as assignments targeting rules environments or audiences are updated in short any operation visible in the flag history is sent to the webhook request body event flag configuration updated data flag id flag_id key flag_key meta_data user_email email_of_user_who_updated_flag signature signature note the user_email field is only available if the flag was updated via the ui updates by the api will have meta_data configuring the webhook to use the webhook you first need to setup a url on your side to receive the webhook request the configuration is done in the admin integrations page once that is done contact eppo support to customize the webhook to your needs webhook signature the webhook request is signed with a signature the signature is a hash of the data object in the webhook request body and the webhook secret integrating and verifying the signature to verify the webhook signature you ll need to get the signature from the webhook request body generate a hmac sha 256 hash with your webhook secret and the data in the webhook request body compare the generated hash with the received signature here s an example in typescript node js import crypto from crypto function generatehmacsignature secret string data string string return crypto createhmac sha256 secret update data digest hex function isvalidwebhooksignature data string signature string webhooksecret string boolean const expectedsignature generatehmacsignature webhooksecret data return crypto timingsafeequal buffer from signature buffer from expectedsignature example usage in an express route handler app post webhook req res const signature req body signature const data json stringify req body data const webhooksecret process env webhook_secret if isvalidwebhooksignature data signature webhooksecret return res status 401 send invalid signature process the webhook note always use a constant time comparison function like crypto timingsafeequal when comparing signatures to prevent timing attacks ensure json data types are preserved before stringifying to generate the signature for example a numeric id should remain a number e g id 123 and not be coerced into a string e g id 123 as this will result in an incorrect signature edit this page previous rest api experiment webhook events experiment metric updated experiment configuration updated experiment status updated experiment calculated metrics updated flagging webhooks flag configuration updated configuring the webhook webhook signature integrating and verifying the signature links eppo blog eppo application product updates reference api reference security copyright 2026 eppo inc
|