OpsIQ exposes a clean REST API, signed webhooks, an action-contract registry, and ready-to-ship SDKs. Define what events fire from your system, what actions the AI is allowed to run, and what data is safe to read โ OpsIQ handles signatures, retries, audit logs and confirmation flows for you.
Anything platform-specific lives in a connector. The OpsIQ core stays generic, the AI stays predictable, and your integration stays auditable.
1 ยท Triggers
Tell OpsIQ what just happened.
Fire universal events from your platform โ invoice.paid, ticket.created, subscription.cancelled, customer.signed_up, or your own custom event names. OpsIQ subscribers (the AI brain, automation rules, mirror connectors, your webhook endpoints) react in real time, in priority order.
An action contract is a signed JSON declaration: what the action does, which roles can run it, what parameters it accepts, whether confirmation is required, and the endpoint to call. The AI cannot invent actions โ it can only ask to run ones you've registered. Risky actions trigger a confirmation card before any side-effect.
Push events to your stack โ with cryptographic proof.
Subscribe any URL to any event. OpsIQ POSTs the JSON payload signed with HMAC-SHA256 over the raw body. Every webhook carries a replay-protection timestamp, an idempotency key, and a delivery ID you can trace in our admin or your logs.
Three official SDKs handle authentication, signing, retries, idempotency keys and typed responses. Or stay framework-free โ every SDK is a thin wrapper around the same REST surface.
import { OpsIQ } from"@opsiq/sdk";
const ops = new OpsIQ({
publicKey: process.env.OPSIQ_KEY,
secretKey: process.env.OPSIQ_SECRET,
});
// Fire an event from your backendawait ops.events.fire("order.shipped", {
customer_id: 421,
order_ref: "NB-9182",
carrier: "DHL",
});
// Run a contracted actionconst result = await ops.actions.run("saas.send_kb_link", {
ticket_id: 5519,
article: "how-to-reset-password",
});
use OpsIQ\Client;
$ops = new Client([
'public_key' => getenv('OPSIQ_KEY'),
'secret_key' => getenv('OPSIQ_SECRET'),
]);
// Fire an event$ops->events->fire('order.shipped', [
'customer_id' => 421,
'order_ref' => 'NB-9182',
]);
// Run a contracted action$result = $ops->actions->run('saas.send_kb_link', [
'ticket_id' => 5519,
'article' => 'how-to-reset-password',
]);
from opsiq import OpsIQ
ops = OpsIQ(
public_key=os.environ["OPSIQ_KEY"],
secret_key=os.environ["OPSIQ_SECRET"],
)
# Fire an event
ops.events.fire("order.shipped", {
"customer_id": 421,
"order_ref": "NB-9182",
})
# Run a contracted action
result = ops.actions.run("saas.send_kb_link", {
"ticket_id": 5519,
"article": "how-to-reset-password",
})
5 ยท The connector pattern
Build once. Plug into anything.
A connector is a folder with one PHP class. Implement identityProviders(), contextProviders(), registerActions(), subscribers() and handleWebhook(). OpsIQ discovers it, the registry wires the events, and your platform-specific code stays cleanly separated from the core.
OpsIQ never invents the right call. It walks through the registered contracts, prepares the payload, asks for confirmation when the action requires it, and produces a complete audit row when it executes.
๐ง Step 1 ยท Intent resolution
The AI matches the request to a registered action.
Admin types "refund Adam's last invoice". The AI scans the action contract registry, finds saas.refund_invoice, and starts assembling parameters from your live data โ never inventing a call that doesn't exist.
prompt โ "refund Adam's last invoice"
โ matched: saas.refund_invoice
โ surface: admin ยท role required: owner
๐ก๏ธ Step 2 ยท Validate
Lookup, role check, payload build.
Resolves "Adam" โ customer, fetches the most recent paid invoice, validates parameters, checks the admin's role and the action's confirmation policy.
โ Step 3 ยท Confirm & sign
Admin sees a preview card. Confirms. Signed.
For risky actions, OpsIQ surfaces a confirmation card with the exact params. After confirm, OpsIQ POSTs the action to your endpoint with HMAC-SHA256.
๐งพ Step 4 ยท Audit
Every prompt, every response, every action โ recorded.
AI History captures the rendered prompt, the response, the action result, the actor, the duration. Owner-only, exportable as CSV.
Reference
API surface at a glance.
Endpoint
Auth
Idempotent
Rate limit
POST /v1/events/fire
HMAC
Yes
1000 / min
POST /v1/actions/run
HMAC
Yes
200 / min
GET /v1/customers/{id}
HMAC
Yes
2000 / min
GET /v1/tickets
HMAC
Yes
2000 / min
POST /v1/webhooks/test
HMAC
Yes
60 / min
GET /v1/connectors
HMAC
Yes
2000 / min
Build with us
Make your platform AI-operable in production.
Sign up, generate an API key, and you'll have a working integration in under an hour. Need help? Our engineers will pair with you live.