gpt_app_enabled.
Overview
- User chats with your Custom GPT
- ChatGPT calls
POST /unified/gpt-actions/{tool_name}with JSON bodies - User authenticates once via Connect to Postsiva (OAuth)
- Actions run against the selected workspace
Create the Custom GPT
Import OpenAPI schema
Actions → Import from URL:This registers all Postsiva tools as Actions (publish, get_accounts, idea_to_content, etc.).
Configure authentication
Authentication type: OAuth
Alternative for internal/testing: API Key with
| Field | Value |
|---|---|
| Client ID | From Postsiva (contact support or app settings if provided) |
| Client Secret | Matching secret |
| Authorization URL | https://backend.postsiva.com/auth/oauth/authorize |
| Token URL | https://backend.postsiva.com/auth/oauth/token |
| Scope | As defined in Postsiva OAuth config |
Authorization: Bearer psk_live_YOUR_KEY (not recommended for public GPTs).OAuth flow (Connect to Postsiva)
- ChatGPT redirects to
GET /auth/oauth/authorize - User signs in at
/auth/oauth/login(email/password or Google) - User selects workspace at
/auth/oauth/select-workspace - ChatGPT receives access token (Bearer JWT with
workspace_id) - Subsequent Actions send
Authorization: Bearer <token>
GET https://backend.postsiva.com/.well-known/oauth-protected-resource
Disconnect: User asks GPT to disconnect, or you call:
disconnect_gpt_connector revokes the ChatGPT session only. Social accounts stay connected. Use manage_platform_connection with action=disconnect to unlink a network.Available Actions
Same 12 tools as MCP, excludingweb_search_duckduckgo:
| Action | Use when user asks to… |
|---|---|
get_accounts | See connected platforms or one profile |
get_queued_posts | View scheduled posts or drafts |
get_user_posts | List recent posts |
get_unified_analytics | View engagement totals |
get_comments | Read comments on posts |
reply_to_comment | Post a public reply |
manage_platform_connection | Connect or disconnect OAuth |
idea_to_content | Turn a topic into post copy |
content_to_image | Generate images from text |
media_to_content | Write captions from image/video URL |
analyze_media | Describe what’s in media |
publish | Post, draft, or schedule content |
disconnect_gpt_connector | Log out ChatGPT from Postsiva |
Example conversations
Generate and draftUser: Write LinkedIn and Threads posts about our new API docs, then save LinkedIn as a draft.GPT calls:
idea_to_content → publish with draft: true for LinkedIn.
Schedule
User: Schedule this for Friday 10am UTC on Instagram: [caption]. Image: [url]GPT calls:
publish with post_type=image, scheduled_time, and media fields.
Analytics
User: How did my posts perform this month?GPT calls:
get_unified_analytics, optionally get_user_posts with refresh_stats=true.
GPT Actions vs MCP
| Custom GPT | MCP (Cursor) | |
|---|---|---|
| Auth | OAuth (user-facing) | API key |
| Web search | No | Yes (web_search_duckduckgo) |
| Audience | Non-technical users | Developers |
| OpenAPI | Required import | MCP tool list |
| Timeout | 120 seconds | Client-defined |
Privacy and data
- Actions run against one workspace selected at OAuth time
- Post content and analytics pass through ChatGPT’s conversation context — review OpenAI’s data policies for your use case
- Do not embed
psk_live_keys in public GPT instructions
Troubleshooting
| Issue | Solution |
|---|---|
| Actions grayed out | Re-import OpenAPI; check Pro plan |
| 401 on every call | Reconnect via Connect to Postsiva |
| ”Plan upgrade” message | Workspace needs gpt_app_enabled (Pro) |
| GPT tries to web search | Remind in instructions — tool not available |
| Wrong workspace | Disconnect OAuth, reconnect, pick correct workspace |
Alternative: API key testing
For private GPTs or development, set Authentication to API Key:Next
GPT Actions API
Endpoint reference
Plans
Pro requirements
MCP overview
Developer agent integration