Jobs & Monitoring
Track the progress of sync and publish jobs, check your connection status, and trigger instant Notion polls — from the terminal or any script.
notipo status
Shows whether Notion and WordPress are connected, your current plan, and the effective plan (Trial downgrades to Free after expiry).
notipo status{
"notion": {
"configured": true,
"databaseId": "1f5842af-972f-8071-b1fc-e01d2c3f4a5b"
},
"wordpress": {
"configured": true,
"siteUrl": "https://yourblog.com"
},
"plan": "PRO",
"effectivePlan": "PRO"
}notipo sync
Triggers an immediate Notion poll for your tenant. Notipo scans your database for any pages with a trigger status (Post to Wordpress, Publish, Update Wordpress) and processes them right away without waiting for the next scheduled poll. Requires the Pro plan with a 15-second cooldown.
notipo sync{
"ok": true,
"message": "Sync triggered. Run `notipo jobs` to monitor progress."
}notipo jobs
Lists recent sync and publish jobs with their status, step-by-step progress, and error details on failure. Use this to monitor in-progress jobs, confirm completion, or diagnose failures.
notipo jobs[{
"id": "jb9a1b2c-3d4e-5f6g-7h8i-9j0k1l2m3n4o",
"type": "SYNC_POST",
"status": "COMPLETED",
"post": { "title": "Why Every Developer Should Have a Blog" },
"result": {
"steps": ["Fetching from Notion…", "Uploading images…", "Creating WP draft…"],
"wpPostId": 1003934,
"wpUrl": "https://yourblog.com/wp-admin/post.php?post=1003934&action=edit"
}
}]Job statuses
| Status | Meaning |
|---|---|
PENDING | Queued, not yet picked up |
RUNNING | Pipeline is actively executing |
COMPLETED | Success — check result.wpUrl for the WordPress link |
FAILED | Pipeline failed — check result.error for the reason |
Exit Codes
The CLI follows the standard Unix convention — scripts and agents can branch on the exit code without parsing output.
| Code | Meaning |
|---|---|
0 | Success — JSON result on stdout |
1 | Error — JSON error object on stderr with a message field |
# stderr on error (exit code 1)
{
"message": "WordPress connection not configured"
}Using with AI Agents
The CLI is designed as an MCP-compatible tool that AI agents can call directly. JSON on stdout, errors on stderr with non-zero exit codes — the standard contract for agent-friendly tools. An agent can write and publish a full blog post to WordPress without touching a browser:
CI/CD Example
Add NOTIPO_URL and NOTIPO_API_KEY as repository secrets, then call the CLI in any workflow step:
# .github/workflows/publish.yml
- name: Publish post via Notipo
run: |
npx notipo posts create \
--title "${{ env.POST_TITLE }}"
--category "Release Notes"
--publish --wait
env:
NOTIPO_URL: ${{ secrets.NOTIPO_URL }}
NOTIPO_API_KEY: ${{ secrets.NOTIPO_API_KEY }}