# Create, schedule, and publish social media posts

Begin with a connected account and the platform’s current publishing schema. A post can share common content while each publication targets one account and can override text, media, schedule, or platform options.

## Safe publishing workflow

1. List platforms, profiles, and accounts.
2. Upload any local media through SmallForce Assets.
3. Prepare one publication object per target account.
4. Validate the complete post.
5. Create it as a draft, publish now, or schedule it.
6. Inspect each account’s publication result and retry only failures that are safe to repeat.

```bash
smallforce social posts validate \
  --content "Hello from SmallForce" \
  --publish now \
  --publication '{"accountId":"<accountId>"}'

smallforce social posts create \
  --content "Hello from SmallForce" \
  --publish schedule \
  --scheduled-for 2030-07-15T14:00:00Z \
  --publication '{"accountId":"<accountId>"}'
```

Use an idempotency key when an agent or automation may retry the same creation request. See [`social posts create`](/docs/cli/commands/social/posts/create) for the exact publication structure.
