Start Here

Developer overview

Map the Antly developer surfaces: JQL, scripts, Page Builder runtime code, events, and public embeds.

Antly exposes three main developer surfaces:

  1. Call the JQL API from an external system.
  2. Write scripts that run inside Antly against records, tasks, tickets, or workflow nodes.
  3. Write React runtime code for Page Builder V3 react blocks and Page Builder V4 pages.

Those surfaces share the same platform model. Most code eventually reads or writes a namespace such as objects.Record, tasks.Task, tickets.Ticket, system.Webhook, or a module namespace. Start with the JQL contract in /reference/jql-overview, then use the namespace pages under /reference/* when you need the fields and intents for a specific app.

Extension map

Use the API when another service owns the flow and Antly is a system of record. A typical integration creates an API application, stores the generated JQL token, and sends POST /jql requests with __meta__.authenticationClass set to api_key. See /developer/api-applications-keys and /developer/quickstart-api.

Use scripts when the logic belongs inside Antly. Object scripts attach to object records and run on object lifecycle triggers. Workflow script nodes run as a step in a workflow graph. Scripts are currently enabled for objects.Record, tasks.Task, and tickets.Ticket. See /guides/object-scripts, /guides/scripts, /developer/scripts-api, and /developer/script-patterns.

Use Page Builder runtime code when a page needs custom UI but should still run inside Antly's authenticated shell. V3 react blocks and V4 generated pages share the same injected runtime: useJql, useJqlMutation, Formik, Yup, Antly input components, PageBuilderChart, PageBuilderIrisChat, and PageBuilderReport. See /guides/page-builder-v4, /developer/runtime-overview, and /developer/data-hooks.

Use events when Antly needs to notify or receive from another system. Outbound webhooks are configured with system.Webhook and system.WebhookListener. Inbound provider callbacks arrive at /webhooks/<app>/<service>/<method>. Realtime browser clients connect to WS /jql-streams. See /developer/outbound-webhooks, /developer/inbound-webhooks, and /developer/realtime-streams.

A minimal JQL shape

All JQL requests carry an envelope named __meta__. The envelope chooses the schema, namespace, intent, fields to return, and authentication class.

json
1{ 2 "__meta__": { 3 "schema": "model", 4 "namespace": "objects.Record", 5 "intent": "retrieve", 6 "authenticationClass": "api_key", 7 "return": { 8 "id": null, 9 "name": null, 10 "created": null 11 } 12 }, 13 "filter": { 14 "object__namespace": "Customer" 15 } 16}

For the complete envelope, intent names, return trees, filters, pagination, and upload side effects, read /reference/jql-overview, /reference/crud-operations, /reference/filters-and-queries, and /reference/pagination.