Question
Why are my custom fields missing or dropped when sending events to Segment via the HTTP API? I see the fields in the debugger, but they do not appear in my schema or reach my destinations.
Product
Twilio Segment
Environment
Segment Console
Answer
userId, anonymousId, context, integrations, timestamp, messageId, sentAt, receivedAt, type, version, and:
-
For Track calls:
eventandproperties -
For Page and Screen calls:
nameandproperties -
For Identify calls:
traits -
For Group calls:
groupIdandtraits -
For Alias calls:
previousId
Any custom fields placed at the root level (for example, a data object) are automatically ignored or stripped out by the ingestion API to ensure compatibility with downstream destinations.
While the full payload is visible in the Source Debugger’s Raw view, only fields matching the Segment Spec are ingested and routed to destinations. To ensure your custom data is processed, nest it inside the properties, traits, or context objects.
Additional Information
If you are integrating with a third-party source that cannot modify the payload structure, you can use a Segment Source Function to transform incoming events and move custom fields into the correct location before ingestion.