Share photos, files, and voice notes
Get an image, a document, or a recorded note to your team from any client.
Every attachment travels the same way: pick it, look at the preview, send it. Two things change the outcome. Whether an image goes compressed or at full resolution decides how it arrives, and which client you are on decides what you can attach at all.
Before you start: have a chat open. See Start a direct or group chat.
Send a photo or video
- Open the chat.
- Select the paperclip to the left of the composer.
- Select Photo or Video.
- Pick one or more images, or a video.
- Type a note into the Type a message... box if you want one.
- Select the send arrow.
Dragging files from your desktop onto the open thread opens the same preview, which is faster than the menu when the file is already on screen.
Attaching a photo or video.
Send several at once and each one becomes its own message, and the note you typed is repeated under every one of them. A reply you had lined up attaches to the first.
Compressed or original
Two buttons sit at the top left of the preview, and the one in blue is the one that will be used. The picture icon is Send in a quick way, which compresses. The document icon is Send without compression, which sends the file you picked, byte for byte.
Compressing caps the longest side at 1600 px and re-encodes the image as WebP, which is why a phone photo sent this way lands in the thread in a moment.
Send the original when someone will zoom into it: a nameplate, a crack, a wiring detail. Send compressed for everything else. The original is slow on plant Wi-Fi and nobody waits for it.
The choice also decides how the image arrives. A compressed image appears in the thread as a picture you can open, and it is listed under Media in chat info. An original arrives as a file row with a download button, no thumbnail, and it is listed under Files.
Send the original when someone will zoom into it. Compressed for everything else.
Sending a video?
Select Send without compression first, because the browser's compression step handles still images only.
If the preview closes and nothing appears in the thread, that is what happened: pick the video again and send it without compression.
Send a file
- Select the paperclip, then File.
- Pick one or more files.
- Check the names and sizes listed in the preview.
- Select the send arrow.
The browser's chooser applies no type filter, so a PDF, a spreadsheet, a DXF, and a firmware binary all go. If everything you picked is a JPEG, PNG, GIF, WebP, or SVG, the compress button appears here too, set to original.
Take a photo in the app
Select the paperclip, then Camera. The browser asks for permission the first time, your webcam appears, and Capture freezes a still that lands in the usual preview.
Use this for a whiteboard or a printed work instruction sitting next to the laptop. For anything you have to walk to, use the phone: its camera reaches the machine and the laptop does not. The web capture is a still image, so recording video is a phone capability.
Record a voice note
A voice note is an audio message recorded in the composer and posted to the thread like any other message.
- Empty the composer. The microphone button appears only when there is no text in it.
- Hold the microphone down. It turns red and pulses while it records.
- Release to stop.
- Play the recording back in the player that replaces the composer.
- Select the send arrow, or the X to throw it away.
Nothing is posted until you send it, so a recording you dislike costs nothing. In the thread, a voice note arrives as a play button, a waveform, and its length. The waveform is drawn from the audio itself the first time anyone plays it, so it looks flat until then.
A voice note with its waveform.
On iOS and Android, hold the microphone in the same place, then slide left to cancel the recording or slide up to lock it so you can stop holding. Releasing goes to the same preview the web shows.
Hold to record a voice note on mobile.
Share from another app
A photo you just took in the camera app, or a PDF a supplier emailed you, can go straight into IoTFlows without opening it. On iOS this is a share extension: a small piece of the app that the system share sheet runs, which uploads the attachment and posts the message over its own connection rather than waking the full app.
- Select Share in the app holding the file.
- Select IoTFlows.
- Under Create as, select Send as Message.
- Under Attach as, select Images or Files.
- Select Continue, then pick the chat.
Create as also routes to Maintenance Request, which opens the request form with the attachment staged. See Submit a maintenance request. iOS adds Production Work Order as a third destination; Android offers the first two.
The web dashboard is not a share target. Dragging a file onto an open thread is the closest thing a browser has.
The share sheet routes: another app to IoTFlows, then to a chat or a maintenance request.A diagram in three stages, left to right. A box reading 'Another app: Photos, Files, a supplier's email' has an arrow into a box reading 'IoTFlows share sheet: Create as, then Attach as Images or Files'. Three arrows leave it: to 'Send as Message, pick a chat, posts into the thread', to 'Maintenance Request, opens the request form with the files staged', and to 'Production Work Order, iOS only'. A line underneath reads: the web dashboard is not a share target, drag a file onto the thread instead.Browse a chat's media, files, and voice notes
Select the chat's name or picture in the header to open chat info. Four tabs run across it: Members, Media, Files, and Voice.
| Tab | Holds |
|---|---|
| Media | Compressed images, as a grid of thumbnails. Select one to open it full size. |
| Files | Everything sent without compression: documents, videos, and original-quality images. |
| Voice | Voice notes, each with its own player. |
Each tab loads the most recent items and fetches older ones as you scroll. An empty one says so: "No images have been shared in this chat."
An image sent as an original is under Files, not Media, which is where people go looking for a photo they know they sent.
Everything shared in a chat, browsable by type.
Download and save
On the web, every attachment carries a download control: the round button on a file or voice bubble in the thread, the download control in the expanded image, or the row itself under Files. The file arrives wherever your browser puts downloads, under the name it was sent with.
On iOS, open the image or video and select Share for Save Video, Save to Files, or AirDrop. On Android, open the image and select Save to phone, which writes it into Pictures/IoTFlows or Movies/IoTFlows and reports progress in a system notification. Tapping a document on Android downloads it and hands it to whichever app opens that type, rather than keeping a copy in your files.
Attachment types
| Type | Web | iOS | Android | Size or format notes |
|---|---|---|---|---|
| Photo | Yes, compressed or original | Yes, always compressed | Yes, compressed or original | Web compression caps the longest side at 1600 px and writes WebP. iOS re-encodes to JPEG at a low quality setting with no original option. Android compresses to WebP unless you check Send original (no compression). |
| Video | Yes, uncompressed only | Yes | Yes | Arrives in the thread as a file row on the web, and is listed under Files on every client. |
| Any other file | Yes | Yes | Yes | The browser's chooser enforces no type filter and no size limit. Several at once is fine. |
| Camera capture | Yes, still photo | Yes, photo or video | Yes, photo or video | Web capture uses the webcam at its own resolution. Android splits the choice into Take photo and Record video. |
| Voice note | Yes, hold the microphone | Yes | Yes | Phones add slide left to cancel and slide up to lock. |
| Shared in from another app | No | Yes | Yes | iOS offers three destinations, Android two. |
You do not need the phone app to share files. Everything except the share sheet and video capture works in the browser, so a planner at a desk never has to install anything.
When an upload fails
| What you see | What happened |
|---|---|
| Failed to upload file. | The upload was rejected or threw. Nothing was posted to the chat. Send it again. |
| An error occurred while uploading the file. | The connection dropped part way through. The progress bar stops and no message appears. |
| Waiting for Network | The file reached storage, but chat's live connection was down when IoTFlows tried to post the message, so nobody sees it. See Send messages. |
| Error downloading file: | The download link could not be issued. Reload the tab and select the download again. |
A voice note is the one case with no toast. If it fails, its bubble sits in the thread at whatever progress it reached and never turns into a message. Record it again.
See also
Pin a chat message from its own menu, either for everyone with Pin for All or for yourself with Pin for Me: pinned messages surface in a banner under the chat header and in a Pinned Messages list, and unpinning from either place removes the pin for whoever holds it. Reactions come from the emoji row that opens above the same menu, or from a searchable picker behind its chevron, and each person's reaction is one emoji they can take back by selecting their own chip.
Find a message again in IoTFlows chat: the Search Messages box above the chat list searches every chat you belong to in the selected organization and waits for you to stop typing, the magnifier in a chat's header searches only that chat and fires on every keystroke, and either result jumps the thread to the message and flashes it blue for a second. A chat's unread count clears when you reach the bottom of the thread, not when you open it, and on web the list column drags between 300 and 500 px wide without remembering the width.





