These examples show the tool calls an AI agent makes behind the scenes. You don’t need to write these yourself — just describe what you want in natural language and your AI agent handles the rest.
Schedule a Post to X
A typical flow to schedule a post to X (Twitter):
List integrations
The agent calls integrationList and finds your X account:{
"output": [
{
"id": "abc123",
"name": "My X Account",
"picture": "https://...",
"platform": "x"
}
]
}
Get platform schema
The agent calls integrationSchema with platform: "x" to learn the rules:{
"output": {
"rules": "...",
"maxLength": 280,
"settings": { ... },
"tools": []
}
}
Schedule the post
The agent calls schedulePostTool:{
"socialPost": [
{
"integrationId": "abc123",
"isPremium": false,
"date": "2025-01-15T10:00:00.000Z",
"shortLink": false,
"type": "schedule",
"postsAndComments": [
{
"content": "<p>Excited to announce our new feature!</p>",
"attachments": []
}
],
"settings": [
{ "key": "who_can_reply_post", "value": "everyone" }
]
}
]
}
Post to Discord with Channel Selection
Platforms like Discord require selecting a channel first:
Get the schema
The agent calls integrationSchema with platform: "discord" and discovers a tool to list channels.
List channels
The agent calls triggerTool:{
"integrationId": "discord-123",
"methodName": "listChannels",
"dataSchema": []
}
Returns available channels with their IDs. Schedule the post
The agent includes the channel ID in settings:{
"socialPost": [
{
"integrationId": "discord-123",
"isPremium": false,
"date": "2025-01-15T10:00:00.000Z",
"shortLink": false,
"type": "now",
"postsAndComments": [
{
"content": "<p>Hello Discord!</p>",
"attachments": []
}
],
"settings": [
{ "key": "channel", "value": "channel-id-here" }
]
}
]
}
Schedule an Instagram Reel with Trending Audio
Instagram (Facebook Business-linked) exposes an audioSearch tool for finding
music or original sounds to attach to a Reel:
Search for audio
The agent calls triggerTool (an empty q returns trending audio):{
"integrationId": "instagram-123",
"methodName": "audioSearch",
"dataSchema": [
{ "key": "q", "value": "summer vibes" },
{ "key": "type", "value": "music" }
]
}
Returns audio assets with their IDs:{
"output": [
{
"id": "587784541076604",
"title": "Summer Vibes",
"artist": "Some Artist",
"duration": 30000,
"previewUrl": "https://..."
}
]
}
Schedule the Reel
The agent includes the chosen audio in settings — the post must be a single
video with post_type: "post":{
"socialPost": [
{
"integrationId": "instagram-123",
"isPremium": false,
"date": "2025-01-15T10:00:00.000Z",
"shortLink": false,
"type": "schedule",
"postsAndComments": [
{
"content": "<p>New reel with trending audio!</p>",
"attachments": ["https://uploads.postiz.com/reel.mp4"]
}
],
"settings": [
{ "key": "post_type", "value": "post" },
{ "key": "audio", "value": { "id": "587784541076604", "audio_volume": 80, "video_volume": 20 } }
]
}
]
}
Audio is not available on instagram-standalone channels — the Instagram Audio
API requires Facebook Login.
Post with an AI-Generated Image
Generate the image
The agent calls generateImageTool:{
"prompt": "A futuristic city skyline at sunset, digital art style"
}
Returns:{
"id": "img-456",
"path": "https://uploads.postiz.com/generated-image.png"
}
Schedule with the image
The agent includes the image URL in attachments:{
"postsAndComments": [
{
"content": "<p>The future is here</p>",
"attachments": ["https://uploads.postiz.com/generated-image.png"]
}
]
}
Generate a Video and Post
Check video options
The agent calls generateVideoOptions to see available generators.
Get voice options
For Image Text Slides, the agent calls videoFunctionTool:{
"identifier": "image-text-slides",
"functionName": "loadVoices"
}
Returns a list of available voices with their IDs. Generate the video
The agent calls generateVideoTool:{
"identifier": "image-text-slides",
"output": "vertical",
"customParams": [
{ "key": "prompt", "value": "5 tips for better social media engagement" },
{ "key": "voice", "value": "voice-id-here" }
]
}
Returns the video URL. Schedule with the video
The agent uses the video URL as an attachment when calling schedulePostTool.
Create an X Thread
To create a thread on X, add multiple items to postsAndComments:
{
"socialPost": [
{
"integrationId": "x-123",
"isPremium": false,
"date": "2025-01-15T10:00:00.000Z",
"shortLink": false,
"type": "schedule",
"postsAndComments": [
{
"content": "<p>Thread: 5 things I learned this week</p>",
"attachments": []
},
{
"content": "<p>1. Consistency beats intensity</p>",
"attachments": []
},
{
"content": "<p>2. Start before you're ready</p>",
"attachments": []
}
],
"settings": [
{ "key": "who_can_reply_post", "value": "everyone" }
]
}
]
}
For LinkedIn, the first item in postsAndComments is the post and the rest are comments:
{
"socialPost": [
{
"integrationId": "linkedin-123",
"isPremium": false,
"date": "2025-01-15T10:00:00.000Z",
"shortLink": false,
"type": "schedule",
"postsAndComments": [
{
"content": "<p>We just launched something big!</p>",
"attachments": []
},
{
"content": "<p>Check it out at example.com</p>",
"attachments": []
}
],
"settings": []
}
]
}
Bulk Schedule
Schedule 5 posts across different days:
{
"socialPost": [
{
"integrationId": "x-123",
"isPremium": false,
"date": "2025-01-13T10:00:00.000Z",
"shortLink": false,
"type": "schedule",
"postsAndComments": [{ "content": "<p>Monday motivation</p>", "attachments": [] }],
"settings": [{ "key": "who_can_reply_post", "value": "everyone" }]
},
{
"integrationId": "x-123",
"isPremium": false,
"date": "2025-01-14T10:00:00.000Z",
"shortLink": false,
"type": "schedule",
"postsAndComments": [{ "content": "<p>Tuesday tip</p>", "attachments": [] }],
"settings": [{ "key": "who_can_reply_post", "value": "everyone" }]
},
{
"integrationId": "x-123",
"isPremium": false,
"date": "2025-01-15T10:00:00.000Z",
"shortLink": false,
"type": "schedule",
"postsAndComments": [{ "content": "<p>Midweek thoughts</p>", "attachments": [] }],
"settings": [{ "key": "who_can_reply_post", "value": "everyone" }]
},
{
"integrationId": "x-123",
"isPremium": false,
"date": "2025-01-16T10:00:00.000Z",
"shortLink": false,
"type": "schedule",
"postsAndComments": [{ "content": "<p>Thursday throwback</p>", "attachments": [] }],
"settings": [{ "key": "who_can_reply_post", "value": "everyone" }]
},
{
"integrationId": "x-123",
"isPremium": false,
"date": "2025-01-17T10:00:00.000Z",
"shortLink": false,
"type": "schedule",
"postsAndComments": [{ "content": "<p>Friday wrap-up</p>", "attachments": [] }],
"settings": [{ "key": "who_can_reply_post", "value": "everyone" }]
}
]
}
Each item in the socialPost array is an independent post with its own date, content, and settings.