Upload a conversation attachment
Upload a file for an outgoing message: request a signed S3 URL, PUTthe bytes to S3, then register metadata with POST/conversation-files. This matches the composer flow in the Conversations UI.
Step 1 — Request signed URL
Endpoint: POST/s3-url-signing
Response (example)
json
Step 2 — Upload file to S3
Use the same Content-Type as the original file.
Step 3 — Register file on the conversation
Endpoint: POST/conversation-files
| Field | Type | Description |
|---|---|---|
conversation_id | Number | Conversation receiving the file. |
organization_id | Number | Organization id. |
file_name | String | Original filename. |
file_type | String | MIME type. |
file_size | Number | Size in bytes. |
s3_key | String | Key without bucket (matches s3PathWithoutBucket from signing). |
s3_path | String | Full s3:// path from signing response. |
file_category | String | One of image, audio, file, or video as used in the app. |
Response
The created document includes an _id used as conversation_file_id when calling Send an outgoing conversation message.
Notes
- The app validates image types and sizes in the browser; enforce your own limits when integrating server-side.
- For SMS media outbound URLs, the app builds
https://achieveapex-conversation-files.s3.amazonaws.com/+s3_key(see SMS section in send message doc).
Report an issue with this documentation
Please log in to report issues with our documentation.