AI Builder is the fastest way to create a flow in JAMS IMES. You describe what you want to monitor in plain English; JAMS IMES drafts the flow and asks you to confirm any missing details before saving.
It's especially useful when you're not sure which trigger type or settings to pick β the AI handles the structural decisions.
Before you use it
AI Builder needs an OpenAI API key configured for your tenant. Without one, the page falls back to "heuristic mode" β basic pattern matching that catches the common cases but isn't anywhere near as good.
Set the key once at Dashboard β User menu β OpenAI Key. It's a tenant-wide setting, not per-user. Costs a few cents per flow drafted β typically under $1/month for most teams.
Why isn't this just "use JAMS IMES's key"? Each tenant pays for their own AI usage so we don't have to charge a flat monthly markup and we don't see your prompts. The key is encrypted at rest before storage.
Opening AI Builder
Click AI Builder in the sidebar (or hit the "+ New flow" button on the Flows page and pick AI Builder).
You'll see a chat-style interface. The first message asks you to describe your alert in plain English.
Prompts that work well
The more specific you are, the less back-and-forth you'll have. Two examples that work cleanly:
Email-triggered alert:
Alert me by SMS and call when an email arrives in
monitoring@mycompany.comwith "CRITICAL" in the subject. Send to the on-call group. Escalate after 2 minutes.
JAMS job failure:
When a JAMS job called "Nightly ETL" fails, call my phone and SMS the data team. If no one acknowledges in 3 minutes, also email the team lead.
JAMS IMES parses the prompt into a draft flow β trigger, recipients, channels, escalation β and shows you what it built. If anything is missing (an email connection you haven't created yet, a Team Group that doesn't exist), it'll ask for it inline.
Prompts that won't work yet
AI Builder can't yet do things JAMS IMES doesn't support natively. Some examples:
- Conditional logic across flows β "if A fails AND B is offline, alert; else just log." Each flow is independent.
- Time-based scheduling of the alert itself β "every day at 2am, send a status SMS." Flows react to triggers, not the clock. Use a cron job that calls your webhook for this.
- AI summarization of payload β "include a 1-sentence summary of the error in the SMS." The message body comes from the trigger payload as-is.
After the draft is created
AI Builder takes you to a review screen showing the flow it built. Before saving:
- Verify recipients β most common edit point. AI Builder picks reasonable defaults but might not know your team structure.
- Verify escalation timing β defaults to 5 minutes; tighten to 1β2 minutes for production-critical alerts.
- Check the trigger details β for webhook flows, JAMS IMES shows the URL + API key after save. For email flows, confirm the right mailbox is selected.
Save β the flow is live. Test it (see Getting Started step 5).
Editing flows AI Builder created
Once saved, flows from AI Builder are no different from manually-built flows. Edit them at Flows β click flow name β Edit. The AI doesn't "own" them β they're regular flows.
If you want to recreate something similar with a tweak, easiest path is copy a working flow from the Flows list (Actions menu) and edit the copy.
When AI Builder says "Heuristic mode active"
That's the fallback β OpenAI couldn't be used. See troubleshooting for the fix (usually means OpenAI key isn't set, isn't valid, or hit a rate limit).
The heuristic mode catches the most common patterns (webhook + SMS, email + call), but anything beyond that needs a real LLM. Set the key and try again.
Tips
- Be specific about channels. "Notify me" defaults to SMS. If you want a phone call, say so explicitly.
- Name recipients by group, not individual emails. "On-call team" or "data team" works if you have those Team Groups; raw emails work too but are less reusable.
- Set up prerequisites first. If your flow needs an email connection or a Team Group, create those at Connections and Team Groups before running AI Builder. Otherwise it'll keep asking inline.