Skip to content

The moment it happens

Create Jira onboarding tasks and send a welcome email

When a new hire is confirmed, an onboarding epic with tasks appears in Jira and the new hire gets a welcome email from you, with their manager copied.

Runs
The moment it happens
Apps
Gmail, Jira
AI
Not needed
Access
Jira create issues; gmail.send

Send this to your assistant

Create a ClickRuntime automation: when a new hire arrives at the trigger link from our HR tool, create an onboarding epic with tasks in Jira project PEOPLE, send them a welcome email from my Gmail with their manager in copy, and post a note in #people.

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 office manager handles onboarding alongside everything else. Some new hires get a warm welcome email and a ready laptop; others arrive to find nobody expected them that day, depending on how busy the week was.

Creating the onboarding tasks and sending the welcome email as soon as a hire is confirmed gives every new person the same good start. Each task has an owner in Jira, and the new hire knows what to expect before day one.

What you get out of it

  • Every hire gets the same welcome

    The email goes out for each hire, with the start date and what to bring. Nobody is forgotten in a busy week.

  • Tasks have owners

    Laptop, accounts and first-week plans are Jira tasks with due dates. Progress is visible to everyone involved.

  • Managers are in the loop

    The manager is copied on the welcome email and sees the epic. They can add their own first-week plans.

  • Less admin for the office manager

    Routine steps happen on their own. Their time goes into the personal touches.

How it works

What happens, step by step

  1. When a hire is confirmed, your HR tool sends their details to your automation's trigger link.

  2. ClickRuntime creates an onboarding epic in Jira with a task for each step, due before the start date.

  3. A welcome email is sent from your Gmail to the new hire, with their manager copied.

  4. A short note is posted to your #people Slack channel.

Before it runs live

  • Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
  • Connect Jira
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Create Jira onboarding tasks and send a welcome emailjust nowSucceeded
Email · Welcome to Acme, Sam!We're delighted you're joining on 3 November. Your manager will meet you at 9:30 on your first day.

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 Gmail and Jira 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.
new_hire_onboarding_tasks_in_jira_with_welcome_email.pyexample
import base64
from email.mime.text import MIMEText
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_event, credentials, http, notify

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)
gmail = lambda: build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).users()

def send(to, subject, body, cc=None):
    msg = MIMEText(body)
    msg["To"], msg["Subject"] = to, subject
    if cc: msg["Cc"] = cc
    gmail().messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(msg.as_bytes()).decode()}).execute()

TASKS = ["Prepare laptop", "Create accounts", "Book first-week meetings", "Order welcome pack"]

@on_event
def handle(event):
    h = event.json or {}
    epic = jira("POST", "/rest/api/3/issue", json={"fields": {"project": {"key": "PEOPLE"}, "issuetype": {"name": "Epic"},
                "summary": f"Onboarding: {h['name']} starts {h['start_date']}", "duedate": h["start_date"]}})
    for task in TASKS:
        jira("POST", "/rest/api/3/issue", json={"fields": {"project": {"key": "PEOPLE"}, "issuetype": {"name": "Task"},
             "summary": f"{task}: {h['name']}", "parent": {"key": epic["key"]}, "duedate": h["start_date"]}})
    send(h["personal_email"], f"Welcome to Acme, {h['name'].split()[0]}!",
         f"Hi {h['name'].split()[0]},\n\nWe're delighted you're joining on {h['start_date']}. {h.get('manager_name', 'Your manager')} "
         "will meet you at 9:30 on your first day. Your laptop and accounts will be ready.\n\nSee you soon,\nThe Acme team", cc=h.get("manager_email"))
    notify.slack(f"{h['name']} joins {h.get('team', 'us')} on {h['start_date']}. Onboarding: {SITE}{epic['key']}", channel="#people")
    return {"epic": epic["key"]}

FAQ

Common questions

Can I write my own welcome email?
Yes. Give it your text with placeholders for the name, start date and manager, and every email follows it.
Can different roles get different tasks?
Yes. Give each team or role its own task list, and the right one is used based on the hire's details.
Where does the Slack note go?
To the channel you name, such as #people, so the team knows someone is joining.
What permissions does it need?
Jira create issues; gmail.send. 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 Jira onboarding tasks and send a welcome email” from your assistant

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