Send order details as an Order Placed event
Each custom order submission emits an "Order Placed" event with product and quantity properties, feeding the warehouse without a developer.
New Submission on your "Place an order" form
Create an "Order Placed" track event in Segment with product, quantity, and revenue properties
One-directional. A submission triggers the action — nothing is written back into your form.
Custom orders taken through a form rarely reach the analytics stack. The order sits in a submissions list, and revenue reporting happens in a spreadsheet a week later. Small shops selling made-to-order items run into this constantly.
An "Order Placed" track event closes the gap. Each submission sends the product, the quantity and the variant to Segment the moment it arrives, so the warehouse and the revenue dashboard see custom orders on the same footing as anything sold through the storefront.
Setting it up
- 1
Publish the Product Order Form. Add products and priced options, then connect Stripe, PayPal, or Square for secure hosted checkout.
- 2
In Zapier, watch that order form with the New Submission trigger and load a sample order so the product and quantity fields are available downstream.
- 3
Add Segment as the action app, choose Create Track Event, and name the event Order Placed to match the name Segment's e-commerce destinations already expect.
- 4
Map Email Address to the userId, so orders from a returning customer stack on one profile rather than scattering across anonymous IDs.
- 5
Send Item Name or Product as the product property and Quantity as quantity. Keep the property names lowercase and stable — renaming them later splits your historical reporting in two.
- 6
Decide how revenue gets set. The form does not collect a price, so either type the unit price into a Zapier formatter step and multiply by Quantity, or leave revenue off the event and join to the price list in the warehouse.
- 7
Add Color, Variant, or Size as a variant property and Delivery Method as shipping_method, which gives fulfilment reporting something to group by.
- 8
Place a test order, confirm the event and its properties land in the Segment source debugger, then turn the Zap on.
What maps where
Using the Product Order Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.
| Form field | Segment |
|---|---|
| Email Address | userId on the Order Placed event |
| Full Name | name trait, if you chain an identify call before the track event |
| Item Name or Product | product property |
| Quantity | quantity property |
| Color, Variant, or Size | variant property |
| Delivery Method | shipping_method property |
Variations worth knowing
Add a Zapier filter on Delivery Method and run two branches. Delivery orders carry the shipping address through to your fulfilment destination; collection orders skip it entirely. Both still emit Order Placed, so the revenue total stays whole while the operational routing differs.
Order Placed says a customer asked for something. Once you have taken payment in your existing billing tool, have that tool send an Order Completed event to the same Segment source under the same userId. The gap between the two is your drop-off rate on custom orders.
If something isn't arriving
The revenue property is mapped to a form field that does not exist — the order form captures the order, not the price. Set revenue in a Zapier step from your price list, or drop the property and calculate it in the warehouse.
Numbers coming out of a form field are strings by default. Add a Zapier formatter step to convert Quantity to a number before the Segment action, and downstream aggregation starts working.
Frequently asked questions
Can the form take payment before the Order Placed event fires?
Yes. Add products and priced options to the form, then collect payment through secure hosted checkout with Stripe, PayPal, or Square. Payment status is tracked alongside the response.
How do I set the revenue property when the form has no price field?
Two options work. Add a Zapier formatter step that multiplies Quantity by a unit price you maintain in the Zap, or send the event without revenue and join Item Name or Product to your price table in the warehouse.
Should each item on an order be its own event?
Keep one Order Placed event per submission. The order form captures a single product line, so one event per order keeps the count of orders honest. Multi-line orders are better modelled as a products array on the one event.
Related automations
- Capture webinar registrations as track events
Each webinar signup fires a "Registered" event tied to the work email and session name, so reminders and reporting agree.
- Identify a new lead from a demo request
Every demo request becomes a Segment identify call, so the lead's traits reach your CRM, warehouse and ad tools at once.
- Log product feedback as an event
Each feedback response sends a "Feedback Submitted" event with rating and product category, ready to query beside in-app behaviour.
- Record a support request as an event
Each support form submission emits a "Support Requested" event with topic and priority, giving analytics a live view of inbound volume.
- Track a newsletter signup as an event
Each subscribe form submission fires a "Signed Up" track event carrying the source, so every destination counts the signup the same way.
- Add webinar registrants to a remarketing list
Every webinar registration joins a Customer Match audience you can run follow-up campaigns to after the session.
Build the form first
The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.
Start free