Upload a conversation attachment

Upload a file for an outgoing message: request a signed S3 URL,

PUT
the 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

FieldTypeDescription
conversation_idNumberConversation receiving the file.
organization_idNumberOrganization id.
file_nameStringOriginal filename.
file_typeStringMIME type.
file_sizeNumberSize in bytes.
s3_keyStringKey without bucket (matches s3PathWithoutBucket from signing).
s3_pathStringFull s3:// path from signing response.
file_categoryStringOne 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.