How do I build a SIEM alert-to-ticket pipeline in Tines?

Right now, alerts from our SIEM are manually reviewed and turned into tickets when they need investigation. It’s slow and inconsistent. I want to build a pipeline that takes SIEM alerts, enriches them, and automatically creates well-formed tickets in Jira with the right fields, severity, and context. Where do I start, and what should I watch out for?

Good question, and honestly this is one of the more common builds people ask about, so there’s a pretty well-worn path here.

Start with how the alerts get in the door. Most SIEMs will let you either push via webhook or you poll their API on a schedule, and both work fine in Tines. A scheduled HTTP Request hitting the SIEM’s search/alert API every 5 to 15 minutes is the more common pattern I see, mostly because it’s easier to backfill and doesn’t depend on the SIEM’s webhook reliability. There’s a good example in the library called “Manage Logz[.]io SIEM Alerts” that queries every 15 minutes and creates a Jira ticket per event. The pattern is basically identical no matter which SIEM you’re on since it’s just a REST call under the hood. Worth importing just to see the shape of it even if you’re not on Logz[.]io.

One thing I’d flag early: don’t let every alert go straight to enrichment and then Jira. Put a filter/trigger step right after ingestion to drop the noise (test rules, known benign patterns, anything below a severity floor). Otherwise you’re paying enrichment API costs and creating tickets for stuff nobody was ever going to look at anyway, which is basically the same “inconsistent triage” problem you’re trying to fix, just automated now.

For the enrichment piece, fan things out in parallel rather than chaining them. IP/hash reputation lookups, user/asset context, whatever your team currently checks manually before deciding severity. Merge it all back into one object with a Formula action. There’s a nice, more advanced example in the library, “Triage alerts with agents using SOPs in Confluence,” which uses AbuseIPDB, VirusTotal, URLScan[.]io, and EmailRep in parallel before deciding what happens next. Even if you don’t want the AI agent piece (that’s easy to disconnect), it’s a good reference for how to structure the enrichment fan-out and merge.

Then comes the part people usually get bitten by: actually building the Jira ticket. Jira’s create-issue API is picky about required custom fields depending on project and issue type, so hit the createmeta endpoint once during setup to know what you actually need to populate, rather than finding out via failed requests in prod. For inspiration on field mapping, “Create issues in Jira from alerts in Cybersixgill and notify” and “Create Jira issues for new alerts from Google Alert Center” are both good references. The second one specifically maps severity levels to different Jira fields, which is close to what you’re describing.

For severity logic itself, a Formula action with SWITCH works well. Take your SIEM’s native severity plus whatever enrichment came back (malicious IP hit, privileged account, etc.) and translate that into your Jira priority scale explicitly. Write these rules down somewhere outside the story too, because you will end up tuning them constantly once real tickets start flowing.

A few things I’d genuinely watch out for based on how these tend to go wrong in practice:

  • Duplicate tickets are the big one. A noisy rule firing repeatedly will spam Jira with near identical tickets if you don’t dedupe somehow. Even a simple check for whether you’ve seen that alert ID in the last hour saves a lot of pain later.
  • Enrichment latency can also bite you if you’re chaining a bunch of slow API calls before the ticket gets created. Analysts start wondering why tickets show up three minutes after the alert fired. Sometimes it’s better to create the ticket immediately with a placeholder and update it once enrichment lands.
  • And silent failures. If a Jira call fails (bad field, auth expired, whatever), make sure that doesn’t just vanish. Route errors to a Slack channel or fallback email so you actually notice when tickets stop being created instead of finding out a week later that nothing’s landed in the backlog.

You might also find this useful for a broader look at the pattern across different SIEMs:

https://www.tines.com/…-alerts