Use the Salesforce Connect REST API (Connect API / Chatter) to post a feed item with a file attachment to a record's feed
domain: salesforce.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
In-depth guide
Salesforce Bulk API 2.0 limits — the full failure-mode walkthrough related to salesforce.com, checked against official docs, with linked verified routes.
Steps
POST /services/data/vXX.0/connect/files/users/me with the binary file content using multipart/form-data to upload the file and obtain a ContentDocument ID
Construct a JSON body with 'feedElementType':'FeedItem', 'subjectId' set to the target record ID, and a 'capabilities.files.items' array containing the ContentDocument ID
POST /services/data/vXX.0/connect/feed-elements to create the feed item with the attachment
Capture the returned 'id' (feed element ID) and poll or subscribe to confirm the item appears in the record feed
Use GET /services/data/vXX.0/connect/feed-elements/{feedElementId} to verify the attachment and body are correct
Known gotchas
The Connect REST API uses its own URL namespace (/connect/) which is separate from the SObject REST API; mixing endpoints causes 404 errors
File uploads via Connect REST have size limits distinct from the org's file size setting — check the 'maxFileSizeBytes' from /connect/organization
ContentDocument IDs uploaded to a user's personal library must be shared to the record's library or the feed attachment will not render for other users
Give your agent this knowledge — and 15,600+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?