Inspiration

Small nonprofits run on volunteers' personal phones. Clients text a volunteer's cell number, and suddenly that volunteer is fielding questions at 10 PM with no backup and no boundaries. We wanted to see if AI could sit in the middle: fast enough to help clients promptly, but with a human approving every word before it goes out. Privacy and human oversight are central to the solution. Volunteers give their time; they should not have to give up their privacy to do it. Volunteers can also help remotely, opening the opportunity for volunteers who are homebound or have mobility issues. By using familiar tools like WhatsApp and their existing phone dialer, volunteers can help from any location without installing a separate application.

What it does

Volunteer SafeRelay gives volunteers a safe way to serve clients by text and voice.

  • Clients text one number. An AI agent drafts a reply from the pantry's knowledge base.
  • The AI-generated draft is sent via WhatsApp to a checked-in volunteer, who can approve or edit the response, close the conversation, or reassign it.
  • Every AI-generated response requires human approval before it is sent to the client.
  • Voice calls use a similar privacy-first approach. Clients call one number, and the system contacts available volunteers. The first volunteer to press 1 joins a private conference, keeping both parties' personal phone numbers hidden.
  • Volunteers control their availability by checking in and out. Calls and messages are routed only to checked-in volunteers, protecting their personal time from interruptions.
  • When an SMS conversation closes, the coordinator receives an email recap with the full transcript and the outcome.

How we built it

Built entirely on AWS, using all three eligible Communication Developer Services: End User Messaging for SMS, End User Messaging Social for WhatsApp, and SES for the coordinator recap emails. Bedrock AgentCore powers the drafting agent, with Bedrock Knowledge Bases for pantry information and Guardrails on input and output.

Volunteer SafeRelay learns from volunteer edits, approvals, and examples, continuously improving the accuracy and relevance of future AI-generated responses. A router Lambda plus Step Functions runs the human approval loop with a five-minute timeout: miss it, and the work reroutes while the volunteer is signed out. Voice runs on the Amazon Chime SDK with one conference per call. DynamoDB holds the roster, conversations, and routing state. Access to conversation records is restricted to authorized coordinators, and sensitive client information is protected through access controls and encryption.

Challenges and how we addressed them

  • Keeping everything native for volunteers. No portals, no apps to install. That constraint shaped the whole design: WhatsApp interactive lists for approvals, the phone's native dialer for voice.
  • The approval loop. Five minutes is short enough to respect the client's wait and long enough for a volunteer to read and decide. We designed timeout handling, reassignment, and automatic sign-out to preserve conversation continuity, ensuring that no client request is lost when a volunteer becomes unavailable.
  • Voice without Connect. Amazon Connect assumes an agent desktop workflow, so we built the hunt-and-conference flow on the Chime SDK instead. This required additional development but is a cleaner and better fit for the volunteer experience.

Built With

  • agentic-ai
  • amazon-bedrock
  • amazon-bedrock-guardrails
  • amazon-bedrock-knowledge-bases
  • amazon-chime-sdk
  • amazon-dynamodb
  • amazon-eventbridge
  • amazon-ses
  • amazon-web-services
  • aws-cdk
  • aws-end-user-messaging
  • aws-lambda
  • aws-step-functions
  • aws-systems-manager
  • bedrock-agentcore
  • generative-ai
  • sms
  • whatsapp
Share this project:

Updates

Submission history