A customer uploads a photo. It ends up on Instagram. Sounds simple.
It isn't.
We recently built a UGC pipeline for an e-commerce project that connects customer reviews, product data, Instagram and an on-site gallery.
The business flow is straightforward:
Purchase → review request → customer uploads media → moderation → Instagram → website gallery
But behind that simple flow are quite a few engineering challenges.
1) Instagram isn't just a publishing button.
We had to deal with OAuth, token lifecycle, API limits, webhooks and deleted posts.
There is also a shared constraint of 25 submissions per day across all customers.
So the publishing layer needs to be designed around the platform's limitations, not around the ideal business flow.
2) AI doesn't get the final say.
We use Claude (Sonnet) to pre-screen submitted images and video frames for NSFW or off-topic content.
The AI returns a verdict:
→ clean
→ flagged
→ off-topic
But publishing is still a human decision.
That's important when user-generated content is going directly to a brand's social media account.
3) GDPR is part of the architecture.
Consent isn't just a checkbox on a form.
We needed an immutable audit trail showing what the customer agreed to and when.
4) Media uploads change the review flow.
The existing Shopware review functionality wasn't designed for this use case, so the review form had to be extended to support photos and videos.
Videos are also processed differently from images — we analyse four frames rather than sending the entire video through moderation.
And finally:
The customer sees a simple journey.
The engineering team sees:
Shopware → media processing → GDPR audit → AI moderation → human moderation (if necessary) → Meta API → Instagram → web gallery → cache refresh
That's one of the things we find interesting about e-commerce engineering. The feature can look simple from the outside. The architecture rarely is.