Skip to content

The moment it happens

Create Linear issues from a form or alert

Bug reports or alerts sent to a link become Linear issues in the team you choose.

Runs
The moment it happens
Apps
Linear
AI
Not needed
Access
read+write

Send this to your assistant

Create a ClickRuntime automation: give me a link my bug report form can send to. For each report, create a Linear issue in team ENG with the title, description and reporter's email, and skip repeats with the same title.

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

Bug reports arrive from places that are not Linear: a public feedback form, a monitoring tool that fires an alert, a support widget, a spreadsheet of customer complaints. Someone has to copy each one into Linear by hand, and in the rush they leave out the stack trace, forget the link back to the source or never get around to it. Alerts that never become issues are simply forgotten.

The automation gives you a URL that accepts a payload. When something posts to it, ClickRuntime maps the fields to the title, description and priority of a Linear issue, creates it in the team you choose and returns the new issue's URL to the caller. The report becomes a tracked item as soon as it arrives.

It is useful for teams collecting feedback from outside the company or wiring in alerts from other tools.

What you get out of it

  • Reports are never lost in transit

    Each submission becomes an issue automatically, so nothing waits in a mailbox or a chat thread for someone to have time. The team sees every report in the one place they work.

  • Context stays attached to the issue

    Fields like the page URL, browser or customer email are mapped into the description. Engineers do not have to go back and ask the reporter for the details they should have had from the start.

  • The caller gets a link back

    Because the issue URL is returned to whatever sent the request, a form can show a confirmation with a reference, or a monitoring tool can attach the link to its alert.

  • Intake is open to non-Linear users

    Customers, contractors and teammates without a Linear seat can still report problems through a form. That widens your sources of feedback without paying for more seats. That is a real saving in a team that pays per seat.

  • Triage starts from a clean, uniform record

    Every issue is created with the same structure, which makes filtering, labeling and assigning faster. It beats a pile of free-form emails written in all sorts of formats. Consistency here saves minutes on every single report.

How it works

What happens, step by step

  1. When your form or monitoring tool sends a new report to ClickRuntime, the automation starts straight away.

  2. It picks out the title, description and reporter from the report.

  3. It skips reports it has already turned into issues, so repeats do not create duplicates.

  4. A new issue is created in your Linear team, and the link to it is sent back to whatever sent the report.

Before it runs live

  • Connect Linear
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Create Linear issues from a form or alertjust nowSucceeded
Linear · ENGENG-618 Export to CSV drops the last row Reported by ops@northwind.example

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 Linear 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.
create_issues_from_a_webhook_form_alert.pyexample
from clickruntime import on_event, http, credentials, state

def linear(query, variables=None):
    r = http.post(
        "https://api.linear.app/graphql",
        headers={"Authorization": credentials.secret("LINEAR_API_KEY")},
        json={"query": query, "variables": variables or {}},
    )
    r.raise_for_status()
    return r.json()["data"]

@on_event
def handle(event):
    form = event.json or {}
    title = form.get("title", "").strip()
    seen = state.get("titles") or []
    if not title or title.lower() in seen:
        return {"created": False}
    team = linear('{ teams(filter: {key: {eq: "ENG"}}) { nodes { id } } }')["teams"]["nodes"][0]["id"]
    issue = linear("""mutation($input: IssueCreateInput!) { issueCreate(input: $input) { issue { identifier url } } }""",
        {"input": {"teamId": team, "title": title,
                   "description": f"{form.get('description', '')}\n\nReported by {form.get('email', 'unknown')}"}})
    state.set("titles", (seen + [title.lower()])[-1000:])
    return issue["issueCreate"]["issue"]

FAQ

Common questions

What format should the incoming request use?
A JSON body is the simplest, with fields such as title, description and priority. Your assistant maps whichever names your form or tool sends to the Linear fields, so you do not need to rename anything in the sending tool.
How do I stop random people from creating issues?
The webhook URL is a secret and can also require a shared token in the request. Share it only with tools you control. If a URL leaks, it can be replaced with a new one, which stops the old one from creating issues.
Can issues go to different teams depending on the content?
Yes. A field in the payload, such as a product area or a severity, can pick the team, project or label. A fixed default team handles anything that does not match, so no report is left without an owner.
What permissions does it need?
read+write. 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 “Create Linear issues from a form or alert” from your assistant

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