Bluesky
Draft Bluesky posts into a reviewable AutessaDB table, publish approved drafts to the connected account over the AT Protocol, and read back per-post engagement.
Every tool on this page requires a Bluesky connector (see
Connectors); pass its ID as connectorId. Posts
live as rows in an AutessaDB table the connector provisions: drafts start at
status = DRAFT, and publishing creates an app.bsky.feed.post record on
the account, flips the row to PUBLISHED, and stores the post's AT URI
(at://did:plc:.../app.bsky.feed.post/...) for later stats lookups.
Create a draft TOOLBLUESKY_CREATE_DRAFT
Inserts a new draft row with status = DRAFT — nothing is posted to Bluesky
yet. postContent is capped at 300 characters, and the optional mediaUrl
image is stored on the row and only uploaded (as an image embed) at publish
time. Returns the new recordId for the update, publish, and stats tools.
Example
{
"toolType": "BLUESKY_CREATE_DRAFT",
"connectorId": "V1StGXR8Z5",
"postContent": "@@{POST_CONTENT}",
"mediaUrl": "@@{IMAGE_URL}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
postContent- Type
- string
- Description
- Max 300 characters
- Name
mediaUrl- Type
- string · optional
- Description
- Optional - URL of image to attach
Update a draft TOOLBLUESKY_UPDATE_DRAFT
Edits an existing draft row in place; postContent (still max 300
characters) and mediaUrl are both optional and only the provided fields
change. This edits the AutessaDB row only — it has no effect on a post that
has already been published.
Example
{
"toolType": "BLUESKY_UPDATE_DRAFT",
"connectorId": "V1StGXR8Z5",
"recordId": 42,
"postContent": "@@{REVISED_CONTENT}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
recordId- Type
- integer
- Description
- AutessaDB record ID of the draft to update
- Name
postContent- Type
- string · optional
- Description
- Optional - new content (max 300 characters)
- Name
mediaUrl- Type
- string · optional
- Description
- Optional - new media URL
Publish a post TOOLBLUESKY_PUBLISH_POST
Reads the draft row, uploads its image as a blob if a media URL is set, and
creates the post on the connected account via the AT Protocol. The row must
still be in DRAFT status — republishing fails with ALREADY_PUBLISHED. On
success the row is updated to status = PUBLISHED and the post's AT URI is
stored on the row.
Example
{
"toolType": "BLUESKY_PUBLISH_POST",
"connectorId": "V1StGXR8Z5",
"recordId": 42
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
recordId- Type
- integer
- Description
- AutessaDB record ID of the draft to publish
Get post stats TOOLBLUESKY_GET_POST_STATS
Looks up the stored post_uri on a published row and fetches live counts
from Bluesky: likes, reposts, and replies, along with the post's current
text. Only works for rows that have been published (or synced) and therefore
carry an AT URI.
Example
{
"toolType": "BLUESKY_GET_POST_STATS",
"connectorId": "V1StGXR8Z5",
"recordId": 42
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
recordId- Type
- integer
- Description
- AutessaDB record ID to get post_uri from
Get all posts TOOLBLUESKY_GET_ALL_POSTS
Lists rows from the connector's posts table — drafts and published posts
together by default, or filtered with status (DRAFT, PUBLISHED,
SCHEDULED). pageSize defaults to 50 and caps at 100. Reads the AutessaDB
table, so results include anything a human has added or edited there too.
Example
{
"toolType": "BLUESKY_GET_ALL_POSTS",
"connectorId": "V1StGXR8Z5",
"status": "DRAFT",
"pageSize": 50
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
status- Type
- string · optional
- Description
- Optional filter: DRAFT, PUBLISHED, SCHEDULED
- Name
pageSize- Type
- integer · optional
- Description
- Optional, default 50, max 100
Get post by ID TOOLBLUESKY_GET_POST_BY_ID
Fetches a single row from the posts table by its AutessaDB rowId,
returning the post's content, status, media URL, and stored AT URI. Use it
to inspect one specific draft or published post without paging through the
full list.
Example
{
"toolType": "BLUESKY_GET_POST_BY_ID",
"connectorId": "V1StGXR8Z5",
"rowId": 42
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
rowId- Type
- integer
- Description
- AutessaDB record ID to fetch