Atomic File Upload
The latest feature added to Atomic’s extensive tool set is the “File Upload” element that can be added to a card. This new card input allows you to send cards asking your users to upload an existing image or take a new one - prompted by the Atomic card.
Jake Dale
—
Feb 12, 2025
New and shiny
The latest feature added to Atomic’s extensive tool set is the “File Upload” element that can be added to a card. This new card input allows you to send cards asking your users to upload an existing image or take a new one.
Once your users complete the card, the media that they uploaded is available to you in a couple of ways
Atomic can send it directly to your own AWS S3 bucket. From here the possibilities are endless as you can listen for S3 events using AWS Eventbridge and integrate this further in the AWS tech stack.
You can use the file in follow-on steps in an Atomic Action Flow. For example; to send on to an API for analysis, and/or, to play back to your user in a subsequent card.
An example
In the following Action Flow we have a card that asks the user to provide an image, and a prompt to make a change to this image (using an AI API under the hood that Atomic will talk to).
There’s a few branches here to also handle nicely if the image doesn’t pass virus scanning or takes a moment to upload.

Here’s the simple Atomic card prompting for an upload and an AI prompt.
Once Atomic has the uploaded file available and the file has passed a virus scan we then use an Action Flow “Send Request” step to call the AI API. In the Action Flows editor we can define a simple request body and other key config for the request. We feed in the AI prompt (prompt
) and the link to the uploaded file (init_image
) directly from the dynamic context that Atomic has available from the previous steps. The request looks like this:

Finally we send a card that plays back the original image plus the “AI enhanced” version!

This is a playful example, just to demonstrate the feature. Some real-world use-cases are to:
Receive an image that you can store and inspect, for example a meter reading.
Receive a selfie for a competition.
Receive an image that provides proof of address.
Receive an image of an issue that needs addressing, for example a pot-hole.
Receive an image of a receipt and then use an AWS service to parse the text.
About the author
Jake Dale
Head of Engineering
Jake leads the engineering teams at Atomic. When he’s not architecting, coaching and engineering Jake is supporting and working with our customers to make the most of in-app messaging through Atomic.