canonical: https://jentic.com/apis/omnipush.io/omnipush

# OmniPUSH API

Jentic publishes the only available OpenAPI specification for OmniPUSH API, keeping it validated and agent-ready. The OmniPUSH API is the integration layer for the OmniPUSH SaaS platform aimed at remote sales professionals, exposing campaign management, message templates, hooks (trigger webhooks), and a small user-management surface. It exposes 16 endpoints covering user creation and API-key minting, campaign CRUD with start/stop control, message-template management, and hook creation, deletion, and authentication testing. Authentication uses HTTP Basic.

## For AI agents

Run sales-outreach campaigns and manage message templates and trigger hooks for the OmniPUSH remote-sales platform.

## Scope

Does not handle CRM contact storage, deal pipelines, or direct email/SMS sending - use for OmniPUSH campaign, template, and hook orchestration only.

## Capabilities

- Create OmniPUSH user accounts and mint per-user API keys
- Create and update outbound campaigns with associated message templates
- Start and stop a running campaign without deleting it
- List, retrieve, and delete campaigns by ID
- Manage reusable message templates separately from campaigns
- Create and delete trigger hooks that fire campaign actions on external events
- Test a hook end-to-end with a fake payload before going live

## Use cases

### Outreach Campaign Lifecycle

Sales-ops teams use POST /campaign to create a new campaign, GET `/campaign/list` to see what's running, and PUT `/campaign/start_stop` to pause or resume campaigns based on engagement signals. DELETE `/campaign/{id}` cleans up campaigns that have run their course.

Example prompt: Create a campaign via POST /campaign with a template ID and target list, monitor via GET `/campaign/list`, then PUT `/campaign/start_stop` to pause when daily quota is hit.

### Template Library Management

Reusable cold-outreach copy lives in OmniPUSH templates. POST /message_template adds a new variant, PUT /message_template updates an existing one, and DELETE `/message_template/{id}` retires the ones that no longer convert. Templates can be assigned to multiple campaigns at once.

Example prompt: POST a new template with subject, body, and merge tags via /message_template, then attach it to two existing campaigns via PUT /campaign.

### Event-Driven Campaign Triggers via Hooks

Hooks let external systems trigger campaign actions when events occur (a new CRM lead, a closed deal). POST /hook creates the hook, GET `/hook/auth/test` verifies the API key works, and POST `/hook/test` fires a fake payload so you can validate the hook's behaviour before connecting a live event source.

Example prompt: POST /hook with the trigger URL and campaign ID, then POST `/hook/test` with a fake lead payload to verify the campaign action fires.

### AI Agent Sales Operations Assistant

An AI agent integrated through Jentic can run an entire outreach loop - pause a campaign that's over its quota, create a new template variant from a sample email, and resume a different campaign - without holding the OmniPUSH credentials. Jentic stores the basic-auth pair and injects them at execution time.

Example prompt: Search Jentic for 'pause omnipush campaign', load PUT `/campaign/start_stop`, and execute it for campaign ID 712 with action=stop.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/campaign` | Create a campaign |
| PUT | `/campaign/start_stop` | Start or stop a campaign |
| POST | `/message_template` | Create a reusable message template |
| POST | `/hook` | Create a trigger hook |
| POST | `/hook/test` | Test a hook with a fake payload |
| GET | `/user/api_key` | Generate an API key for the current user |

## Key resources

- **Users** — Create OmniPUSH users and mint API keys for them.
- **Campaigns** — Create, update, list, retrieve, delete, and start/stop outreach campaigns.
- **Message Templates** — Create, update, list, and delete reusable templates used by campaigns.
- **Hooks** — Create and delete trigger hooks; test API key validity and fire fake payloads.

## Why Jentic

- **Setup:** Wiring the OmniPUSH API by hand means setting up HTTP Basic with a per-user API key and building each campaign, template, and hook call against api.omnipush.io yourself. Through Jentic you install once, import the OmniPUSH API from the API Directory, store the basic-auth pair once, and your agent calls it.
- **Permission scoping:** OmniPUSH takes its campaign, template, and hook targets in the request body rather than the URL path, so you limit the agent to the operations it needs, such as creating a template or starting and stopping a campaign. Actions like retrieving the account API key are excluded unless you add them to the allowed set.
- **Credential handling:** Your OmniPUSH API key and basic-auth pair are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'pause an omnipush campaign' or 'create an omnipush template', and Jentic returns the matching OmniPUSH operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **SendGrid Mail API** — Bulk email sending used as a delivery channel for outreach campaigns.
- **Twilio API** — Send SMS as a follow-up channel after OmniPUSH campaign emails.
- **HubSpot Account API** — Full CRM with built-in marketing automation for inbound and outbound campaigns.

## FAQ

### Why is there no official OpenAPI spec for OmniPUSH API?

OmniPUSH does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call OmniPUSH API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the OmniPUSH API use?

OmniPUSH uses HTTP Basic authentication with the per-user API key obtained from GET `/user/api_key.` Jentic stores the basic-auth pair in its encrypted vault and injects it on each call so agents reference only a credential handle.

### Can I pause and resume a campaign without deleting it?

Yes. PUT `/campaign/start_stop` with the campaign ID and an action of 'start' or 'stop' toggles run state without losing campaign config. This is the recommended pattern for daily quota or pause-while-investigating flows.

### What are the rate limits for the OmniPUSH API?

Rate limits are not declared in the OpenAPI spec. The campaign list and message-template list endpoints are intended for periodic queries - use them sparingly when monitoring rather than polling on a per-second cadence.

### How do I test a trigger hook before connecting it live through Jentic?

Search Jentic for 'test omnipush hook', and the SDK returns POST `/hook/test.` Pass a fake payload that mirrors your real CRM event, and inspect the campaign action that fires before connecting the live source.

### Does OmniPUSH provide email or SMS sending directly?

The Hook and Campaign endpoints orchestrate outreach actions configured inside OmniPUSH; the API itself does not expose direct email or SMS send operations. Outbound channel delivery is handled by OmniPUSH's underlying integrations.

### Can I limit what my agent is allowed to do with the OmniPUSH API?

Yes. Because you self-host Jentic One, your own rules decide which OmniPUSH operations the agent may call and which stored credentials it may use. You can allow just the endpoints the task needs, such as POST /message_template to create a template or PUT `/campaign/start_stop` to start and stop a campaign, while leaving sensitive operations like GET `/user/api_key` out of the allowed set. Since OmniPUSH takes campaign, template, and hook targets in the request body rather than the URL path, you scope the agent at the operation level and it never sees the underlying basic-auth pair.
