Welcome to another episode of 'This is My Architecture'.
I'm Aarthi from AWS, and joining me today is Lizzy from Traeger.
-Lizzie, welcome to the show. -Thanks Aarthi.
Lizzie, tell us what Traeger does.
Traeger sells our wood pellet grills,
and our mission is to bring people together to make the world a more flavorful place.
And one exciting new way we're doing this is with the launch of
a Traeger-branded meal kit called 'Traeger Provisions'.
So, is that what we are going to dive into the architecture today?
Yes, exactly.
We're going to talk about how we personalize our customer support experience
for our 'Traeger Provisions' customers.
Okay, walk us through this architecture, Lizzie.
So, a 'Traeger Provisions' customer will go on to the 'Traeger Provisions' website, place an order,
and that order data will come from Shopify straight into EventBridge.
So it's coming from Shopify into EventBridge.
And then from EventBridge, through to Kinesis Data Firehose.
From Kinesis Data Firehose, we send all of that order data right into S3.
So, you're sending this real-time data and that's landing on S3.
What happens? What do you do with that data that's on S3?
So, we have an event trigger set up in S3, it'll trigger a Lambda.
And then that Lambda, what it does,
is stores some specific order metadata in a DynamoDB table,
so we have some specifics about the customer,
their phone number, and the order they placed handy in DynamoDB.
So, this architecture here is your ordering process where you ingest data,
you get information from the customer, trigger a Lambda function,
and have the customer metadata here?
You also talked about personalization, and I am seeing Pinpoint and Lex and Connect here.
Talk us about the next phase of this architecture.
Okay, so this, this is setting up the stage for when a customer calls in.
The call comes in to Connect,
and we want to first check where that call is coming from.
So, that's what we use Pinpoint for.
So, the call comes in, and we check with Pinpoint, "Is it a US call or is it coming from another country?"
We can personalize the language options from there.
At this point, 'Traeger Provisions' is only in the US.
So for this use case, it's probably going to be a US call.
But then the next thing we do is, Connect is going to trigger a Lambda,
and that Lambda is then going to query DynamoDB,
this same table that we have, with all of the 'Provision's' metadata,
and it's going to check if that phone number, does that exist customer exist here in our DynamoDB table?
And if so, then we send this back up through Lambda and to Connect and we say, "Hey, this is a 'Provisions' customer."
So, now you're able to match this metadata based on the phone number,
you're able to match it back to the customer that you order information that you already have on there?
So, once it lands on Connect here, what happens after that?
So, the last thing is, we want to check what the reason for their contact was.
So, we invoke a Lex bot that just asks them that simple question,
what the reason for their contact was.
And then with that in hand, it goes back to Connect,
and then we route it to specialized queue for agents that are trained in handling these 'Provisions' contacts.
Got it.
So, the specialized cues rely on some of the personalization that happens with Pinpoint
and then matching with the phone number.
You mentioned, this architecture is currently in the US, but I can already see, using the services,
the higher-level services that you're using in Connect, that this can scale well as you expand into other regions.
Thank you for sharing this architecture with us,
both on the order processing side and the personalization side.
And thank you for watching 'This is My Architecture'. See you soon.