Skip to content

The moment it happens

Log security events as Jira tasks and Notion records

Each security or data-quality alert creates one Jira task and one entry in your Notion security log, and the team is told in Slack.

Runs
The moment it happens
Apps
Jira, Notion
AI
Not needed
Access
Jira write; Notion read+insert

Send this to your assistant

Create a ClickRuntime automation: when a security alert arrives at the trigger link, skip it if we've seen its id, otherwise create a Jira task in SEC, add an entry to my Notion Security log, and post to #security.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A small company's compliance programme requires a log of every security event, such as repeated failed logins or a data check that failed, and evidence of follow-up. The security lead keeps the log in Notion by hand and tracks the work in Jira, and the two are rarely in sync.

Creating the Jira task and the Notion log entry together, from the alert itself, keeps the record complete and consistent. The follow-up is tracked in Jira, and the log is ready for the auditor.

What you get out of it

  • A complete security log

    Every alert gets a Notion entry with time, source and details. The log is audit-ready.

  • Follow-up is tracked

    A Jira task gives each event an owner and status. Nothing is left without a response.

  • No duplicates

    Repeated deliveries of the same alert are recognised by their id. Each event is logged once.

  • The team hears about it

    A Slack message alerts the security channel so someone looks straight away.

How it works

What happens, step by step

  1. When a security tool raises an alert, it sends the details to your automation's trigger link.

  2. ClickRuntime checks whether it has already handled an alert with the same id.

  3. For a new alert, it creates a Jira task in your security project.

  4. An entry is added to your Notion security log with the details and a link to the task.

  5. A message is posted to your #security Slack channel.

Before it runs live

  • Connect Jira
  • Connect Notion and share the database you want it to use
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Log security events as Jira tasks and Notion recordsjust nowSucceeded
Slack · #securitySecurity event logged: 25 failed logins for admin@acme.example in 10 minutes (SEC-412)

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Jira and Notion steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
security_events_become_jira_tasks_and_notion_log_entries.pyexample
from clickruntime import on_event, credentials, http, notify, state

JIRA, SITE = "https://api.atlassian.com/ex/jira/your-cloud-id", "https://acme.atlassian.net/browse/"
adf = lambda text: {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": text}]}]}

def jira(method, path, **kw):
    resp = http.request(method, JIRA + path, headers={"Authorization": f"Bearer {credentials.connection('jira', 'work')}", "Accept": "application/json"}, **kw)
    return resp.raise_for_status() or (resp.json() if resp.content else None)
def notion(method, path, **kw):
    resp = http.request(method, f"https://api.notion.com/v1{path}", headers={
        "Authorization": f"Bearer {credentials.secret('NOTION_TOKEN')}", "Notion-Version": "2022-06-28"}, **kw)
    return resp.raise_for_status() or resp.json()

LOG = "your-notion-database-id"

@on_event
def handle(event):
    alert = event.json or {}
    seen = state.get("seen") or []
    if alert.get("id") in seen:
        return {"duplicate": True}
    key = jira("POST", "/rest/api/3/issue", json={"fields": {"project": {"key": "SEC"}, "issuetype": {"name": "Task"},
               "summary": f"[{alert.get('severity', 'info')}] {alert.get('title', 'Security event')}"[:250], "description": adf(alert.get("details", ""))}})["key"]
    notion("POST", "/pages", json={"parent": {"database_id": LOG}, "properties": {
        "Name": {"title": [{"text": {"content": alert.get("title", "Security event")}}]}, "Source": {"select": {"name": alert.get("source", "unknown")}},
        "Severity": {"select": {"name": alert.get("severity", "info")}}, "Received": {"date": {"start": event.received_at}}, "Jira": {"url": SITE + key}}})
    notify.slack(f"Security event logged: {alert.get('title')} ({key})", channel="#security")
    state.set("seen", (seen + [alert.get("id")])[-1000:])
    return {"issue": key}

FAQ

Common questions

Which tools can send alerts?
Any tool that can send a web request for each alert, such as an identity provider, a data quality check or a monitoring service.
What goes in the Notion entry?
The alert title, source, severity, time received and a link to the Jira task.
Can low-severity alerts skip Jira?
Yes. You can log low-severity events in Notion only and create Jira tasks for the rest.
What permissions does it need?
Jira write; Notion read+insert. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Log security events as Jira tasks and Notion records” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.