Use a trigger to call a method to bulk post a new file to the feeds of
accounts.
This trigger calls postFeedElementBatch(communityId, feedElements) to bulk post to
the feeds of newly inserted accounts. Each post has a new file (binary)
attachment.
trigger postFeedItemToAccountWithBinary on Account (after insert) { Account[] accounts = Trigger.new; // Bulk post to the account feeds. List<ConnectApi.BatchInput> batchInputs = new List<ConnectApi.BatchInput>(); for (Account a : accounts) { ConnectApi.FeedItemInput input = new ConnectApi.FeedItemInput(); input.subjectId = a.id; ConnectApi.MessageBodyInput body = new ConnectApi.MessageBodyInput(); body.messageSegments = new List<ConnectApi.MessageSegmentInput>(); ConnectApi.TextSegmentInput textSegment = new ConnectApi.TextSegmentInput(); textSegment.text = 'Let\'s win the ' + a.name + ' account.'; body.messageSegments.add(textSegment); input.body = body; ConnectApi.ContentCapabilityInput contentInput = new ConnectApi.ContentCapabilityInput(); contentInput.title = 'Title'; ConnectApi.FeedElementCapabilitiesInput capabilities = new ConnectApi.FeedElementCapabilitiesInput(); capabilities.content = contentInput; input.capabilities = capabilities; String text = 'We are words in a file.'; Blob myBlob = Blob.valueOf(text); ConnectApi.BinaryInput binInput = new ConnectApi.BinaryInput(myBlob, 'text/plain', 'fileName'); ConnectApi.BatchInput batchInput = new ConnectApi.BatchInput(input, binInput); batchInputs.add(batchInput); } ConnectApi.ChatterFeeds.postFeedElementBatch(Network.getNetworkId(), batchInputs);