[{"data":1,"prerenderedAt":95},["ShallowReactive",2],{"pattern-lambda-df-slack":3,"pattern-group-lambda-df-slack":94},{"id":4,"title":5,"architectureURL":6,"cleanup":7,"contributors":12,"deploy":14,"description":18,"extension":19,"framework":20,"gitHub":21,"highlight":6,"introBox":27,"language":34,"level":35,"meta":36,"patternArch":38,"patternGroup":6,"patternGroupLabel":6,"resources":69,"s3URL":6,"services":83,"stem":89,"testing":90,"videoId":6,"__hash__":93},"patterns\u002Fpatterns\u002Flambda-df-slack.json","AWS Lambda durable functions to Slack via Amazon Bedrock AgentCore",null,{"text":8},[9,10,11],"Change directory: cd terraform","Delete the stack: terraform destroy -auto-approve","Confirm all resources have been deleted: terraform show",[13],"content\u002Fcontributors\u002Frajil-paloth.json",{"text":15},[16,17],"terraform init","terraform apply -auto-approve","Slack chatbot using AWS Lambda Durable Functions for stateful, multi-turn conversations with HITL interactions, generating travel itineraries via Amazon Bedrock AgentCore.","json","Terraform",{"template":22},{"repoURL":23,"templateURL":24,"projectFolder":25,"templateFile":26},"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-patterns\u002Ftree\u002Fmain\u002Flambda-df-slack","serverless-patterns\u002Flambda-df-slack","lambda-df-slack","terraform\u002Fmain.tf",{"headline":28,"text":29},"How it works",[30,31,32,33],"The Slack Handler Lambda receives webhook events from Slack via API Gateway, verifies the request signature, deduplicates events, and starts a new Durable Function execution for new conversations.","The Orchestrator (Durable Function) manages the multi-turn conversation flow using wait_for_callback() to pause execution while waiting for user responses — the Lambda is not running during the wait.","When the user replies, the callback resumes the orchestrator exactly where it left off. The AgentCore Agent invokes Amazon Bedrock (Claude) via the Strands framework to generate a personalized itinerary.","The key innovation is the wait-for-callback pattern: the orchestrator suspends (costs nothing while waiting) and automatically resumes when the user responds — enabling multi-turn conversations without managing state manually.","Python","400",{"patternType":37},"Serverless",{"icon1":39,"icon2":44,"icon3":48,"icon4":51,"icon5":56,"line1":60,"line2":63,"line3":65,"line4":67},{"x":40,"y":41,"service":42,"label":43},15,50,"apigw","Amazon API Gateway",{"x":45,"y":41,"service":46,"label":47},37,"lambda","Slack Handler",{"x":49,"y":41,"service":46,"label":50},59,"Orchestrator (Durable)",{"x":52,"y":53,"service":54,"label":55},85,30,"dynamodb","Callbacks Table",{"x":52,"y":57,"service":58,"label":59},70,"bedrock","Bedrock AgentCore",{"from":61,"to":62},"icon1","icon2",{"from":62,"to":64},"icon3",{"from":64,"to":66},"icon4",{"from":64,"to":68},"icon5",{"bullets":70},[71,74,77,80],{"text":72,"link":73},"AWS Lambda Durable Functions","https:\u002F\u002Fdocs.aws.amazon.com\u002Flambda\u002Flatest\u002Fdg\u002Fdurable-functions.html",{"text":75,"link":76},"Amazon Bedrock AgentCore","https:\u002F\u002Faws.amazon.com\u002Fbedrock\u002Fagentcore\u002F",{"text":78,"link":79},"Amazon Bedrock","https:\u002F\u002Faws.amazon.com\u002Fbedrock\u002F",{"text":81,"link":82},"Slack API Documentation","https:\u002F\u002Fapi.slack.com\u002F",{"from":84,"to":86},{"serviceName":43,"serviceURL":85},"\u002Fapi-gateway\u002F",{"serviceName":87,"serviceURL":88},"AWS Lambda","\u002Flambda\u002F","patterns\u002Flambda-df-slack",{"text":91},[92],"See the GitHub repo for detailed testing instructions.","fXSQMdzN0e4vuPOflHS5EpkkoeVyuqxaINYkokTvdAQ",[],1789641294837]