> Part of the walkerOS documentation. Project overview and full index: <https://www.walkeros.io/llms.txt>

# One event, four tools

This web flow sends one event stream to four analytics tools at once, with no per-tool mapping. The collector fans a single event out to every destination, and each tool receives it in its own native call shape.

```
{
  "version": 4,
  "flows": {
    "default": {
      "config": {
        "platform": "web",
        "bundle": {
          "packages": {
            "@walkeros/collector": {},
            "@walkeros/web-source-browser": {},
            "@walkeros/web-destination-gtag": {},
            "@walkeros/web-destination-amplitude": {},
            "@walkeros/web-destination-mixpanel": {},
            "@walkeros/web-destination-posthog": {}
          }
        }
      },
      "sources": {
        "browser": {
          "package": "@walkeros/web-source-browser",
          "config": { "settings": { "pageview": true } }
        }
      },
      "destinations": {
        "ga4": {
          "package": "@walkeros/web-destination-gtag",
          "config": { "settings": { "ga4": { "measurementId": "G-XXXXXX-1" } } }
        },
        "amplitude": {
          "package": "@walkeros/web-destination-amplitude",
          "config": { "settings": { "apiKey": "test-project" } }
        },
        "mixpanel": {
          "package": "@walkeros/web-destination-mixpanel",
          "config": { "settings": { "apiKey": "test-project" } }
        },
        "posthog": {
          "package": "@walkeros/web-destination-posthog",
          "config": { "settings": { "apiKey": "phc_test" } }
        }
      },
      "collector": { "run": true }
    }
  }
}
```

## Run it[​](#run-it "Direct link to Run it")

Save the config as `flow.json` and push an order event through the built flow with GA4 mocked. Nothing is sent to any vendor:

```
npx walkeros push flow.json -e '{"name":"order complete"}' --simulate destination.ga4
```

You should see:

```
success: true
  Duration: 42ms
```

## What each tool receives[​](#what-each-tool-receives "Direct link to What each tool receives")

The collector fans the same event out to all four destinations, and each one forwards it in its own native call (from the packages' examples):

```
gtag('event', 'order_complete', { send_to: 'G-XXXXXX-1' })
amplitude.track('order complete', {})
mixpanel.track('order complete', {})
posthog.capture('order complete', {})
```

That is the routing half of the job: one stream, four tools, no per-tool code. The payload half is mapping: per-destination rules reshape the same event into each tool's expected schema, like the full GA4 purchase payload in [GA4 ecommerce](https://www.walkeros.io/docs/getting-started/ga4-ecommerce.md). Without mapping the name arrives in each tool's native call; with mapping the properties do too.

## Next steps[​](#next-steps "Direct link to Next steps")

* [**GA4 ecommerce**](https://www.walkeros.io/docs/getting-started/ga4-ecommerce.md): Map an order into a full GA4 purchase payload
* [**Mapping**](https://www.walkeros.io/docs/mapping.md): Transform events per destination
