Connect mParticle

Connect mParticle's Webhook | Event output to a Squoosh endpoint using a secret generated by Squoosh. You do not paste mParticle API credentials into Squoosh.

Beta: surface stage

This connector has not been validated against a live account. Squoosh authenticates deliveries, validates their batch envelope, acknowledges them, and discards the payload. It records an occasional delivery heartbeat. It does not yet produce a calibration snapshot, traffic mix, order count, or conversion rate, and does not change your AI shoppers.

Saving creates an Endpoint ready / Awaiting delivery connection. A current-key authenticated delivery heartbeat establishes transport health. Checking status cannot verify a key, and rotating the key requires a new delivery. Payloads remain discarded and no calibration numbers are produced.

What the connection does

mParticle sends event batches to Squoosh. A successful acknowledgement means the delivery passed the endpoint's checks. The connection's status check only confirms that the surface exists; it does not test your mParticle account or prove that events are flowing. The sync log's delivery heartbeat is the evidence that requests have arrived.

Connect mParticle

  1. In Squoosh, open Integrations, select mParticle, and choose Connect. Generate the endpoint and shared secret. Copy the secret immediately: Squoosh shows it once.
  2. In mParticle, open Directory, find Webhook, and configure its Event output.
  3. Set POST URL to the complete HTTPS URL from Squoosh, including ?connection=.... Preserve that query parameter when saving.
  4. Set Authorization Header to Bearer <sharedSecret>, replacing <sharedSecret> with the generated value. Include the word Bearer and the space. Basic authentication is also accepted with the secret as either the username or password, for example Basic base64(secret:) or Basic base64(:secret); paste the actual base64 encoding, not that placeholder notation.
  5. Connect the output to your input. In the connection settings, turn Send as Batch on to reduce request frequency. Keep Raw Data Feed off: it changes the output to the inbound data format.
  6. For future compatibility, keep Include Metadata, Include Location Information, Send Commerce Events, and Send Lifecycle Events on. Turn Include Event Batch Location on when preparing location metadata for later aggregation. These settings do not enable calibration today.
  7. Keep Include MP DeviceId and Include User Attribute/Identity Change Events off. Under Metadata Field Exclusion, exclude Device Name and IP Address. Use mParticle's forwarding filters to minimize unnecessary personal data.
  8. Send development-input events first, then check the Squoosh sync log and mParticle's System Alerts and Event Forwarding report. A busy connection produces at most one success heartbeat per hour per server instance.

The Webhook configuration reference describes these settings and the Authorization header. Do not create a Custom Feed key/secret for this connection: those credentials send data into mParticle and do not authenticate this output.

What Squoosh reads and never reads

Squoosh receives the forwarded JSON body and checks the optional events array and data objects, plus selected optional envelope fields. Unknown event types are accepted without interpretation; omitted events produce a zero-event transport heartbeat. Outbound user_identities, when supplied, must be an array. The handler counts events only to report a sampled delivery heartbeat; it does not calculate sessions or orders.

Squoosh never queries your mParticle account through the Platform, Profile, or Events APIs. It never persists or logs event payloads, identities, device metadata, locations, IP addresses, or the shared secret in the delivery trail. The encrypted connection credential remains stored so future deliveries can be authenticated. Forwarded personal data may still pass through request memory before disposal; configure output filtering accordingly.

Limits and caveats

  • No calibration or backfill. Device and geography are potential future dimensions. Acquisition channel is unavailable from the documented payload: source_info.channel describes how events entered mParticle. No conversion rate is computed without a real session denominator.
  • Payload limit: 1 MiB. Oversized requests receive 413. This is Squoosh's limit; the Webhook output has no documented batch-size ceiling.
  • Rate limiting: authenticated requests may receive 429 with Retry-After. A limiter outage fails open after authentication. This is not a throughput guarantee.
  • Batch delivery: mParticle documents approximately ten-minute batches per device with Send as Batch enabled. Its retry count, timeout deadline, and exact backoff schedule are unspecified. Squoosh returns 202 after validation and the shared heartbeat path; repeated deliveries are acknowledged without deduplication or storage.
  • URL validation remains necessary: preservation of ?connection= in mParticle's saved POST URL has not been live-validated. If the query is removed, use /api/integrations/mparticle/ingest/<connection-id> on the same Squoosh host. This path uses the same authentication and limits; its id takes precedence over a conflicting query.
  • For real aggregated data, an existing mParticle BigQuery Data Warehouse output can feed a customer-built SQUOOSH_CALIBRATION view. Ask your workspace administrator about the separate warehouse or file-import path.

Troubleshooting

Problem What to do
401 Unauthorized Check the complete POST URL and Authorization Header together. Reconnect if the secret was lost or rotated. Unknown connections and invalid credentials deliberately have the same response.
400 invalid_body Keep Raw Data Feed off and send the documented outbound batch object with an optional events array. If present, events must be an array of objects. Check for malformed JSON or an inbound-style identity object.
413 payload_too_large Reduce the forwarded payload or batching size using your mParticle configuration. Bodies above 1 MiB are rejected.
429 rate_limited Reduce request frequency with Send as Batch and inspect Event Forwarding. Squoosh supplies Retry-After, but mParticle's treatment of that header is undocumented.
Awaiting delivery Check that the input is connected to the output and that events are being forwarded. Status verification alone does not exercise delivery.
Events arriving, but no calibration Expected at the surface stage. Event aggregation is a later feature.