Back to Blog
Automation Workflows

Create User Accounts Across Google, Slack, and Jira with One n8n Workflow

n8n
n8n Resources Team
March 18, 2026

The Onboarding Bottleneck: Manual User Account Provisioning

For any growing company, the excitement of a new hire is quickly followed by a mountain of administrative tasks. One of the most tedious and error-prone processes is user account provisioning. An IT or Operations manager manually logs into Google Workspace, then Slack, then Jira, then a dozen other tools, copy-pasting the new hire's details each time.

This manual process is more than just an annoyance. It’s a bottleneck that can delay a new team member's productivity, introduce typos that lock them out of critical systems, and create security gaps. What if you could standardize and automate this entire sequence?

This article will show you how to build a robust n8n workflow that listens for new hires in a Notion database and automatically creates their user accounts in Google Workspace, Slack, and Jira. It's a foundational piece of a fully automated onboarding system that saves time, reduces errors, and ensures a consistent setup for every new employee.

Who is this workflow for?

  • Operations Managers & HR Teams looking to streamline onboarding.
  • IT Administrators at startups and scale-ups responsible for managing SaaS tools.
  • Automation Builders and Freelancers creating operational efficiency for clients.

Your Automation Blueprint: From Notion to Provisioned

The logic of our workflow is straightforward. We will use a Notion database as our single source of truth for new hire information. When a new hire's status is updated, n8n will trigger a sequence of actions.

Here’s the high-level plan:

  1. Trigger: A new hire is added to a Notion database or their status is updated to "Start Provisioning".

  2. Fetch Data: n8n retrieves the new hire's full name, email prefix, job title, and department from the Notion item.

  3. Create Google Workspace User: n8n makes an API call to the Google Workspace Admin SDK to create the primary user account and email address.

  4. Invite to Slack: Using the newly created email, n8n invites the user to the company's Slack workspace via the Slack API.

  5. Create Jira User: n8n creates a corresponding user account in Jira Cloud, ready for project assignments.

  6. Update Source: Finally, n8n updates the Notion item's status to "Accounts Provisioned" to close the loop.

Prerequisites

Before you begin, ensure you have the following:

  • An active n8n instance (cloud or self-hosted).

  • A Notion database for tracking new hires with properties for Name, Email, Status, Job Title, etc.

  • Administrative access and API credentials for:

  • Notion: Official API Docs

  • Google Workspace: Admin SDK Directory API. Official API Docs

  • Slack: A token with admin.users:write scope. Official API Docs

  • Jira Cloud: An API token with user management permissions. Official API Docs

Example n8n Workflow: Building Your Provisioning Engine

Let's walk through the key nodes and configurations required to build this workflow in the n8n canvas.

1. The Trigger: Notion

Start your workflow with the Notion Trigger node.

  • Authentication: Connect your Notion account.
  • Trigger On: Select Page Updated.
  • Database ID: Select your "New Hire Onboarding" database.
  • Properties to Watch: Set this to your Status property. This ensures the workflow only runs when the status changes, preventing it from firing on every small edit.

Add an IF Node immediately after the trigger to check if the Status property is now equal to "Start Provisioning". This is your gatekeeper, ensuring the rest of the workflow only proceeds for approved hires.

2. The Action: Create Google Workspace User

This is the most critical step, as the new email address is used in subsequent steps. You will likely use the HTTP Request node for this.

  • Method: POST
  • URL: https://admin.googleapis.com/admin/directory/v1/users
  • Authentication: Use OAuth2 and connect your Google Admin account, ensuring you grant the https://www.googleapis.com/auth/admin.directory.user scope.
  • Body (JSON): Construct the user object using expressions to pull data from the Notion node. Your primary email and password will be defined here.

Example Body:

{ "primaryEmail": "{{ $json.properties.Email.rich_text[0].plain_text }}@yourdomain.com", "name": { "givenName": "{{ $json.properties.FirstName.rich_text[0].plain_text }}", "familyName": "{{ $json.properties.LastName.rich_text[0].plain_text }}" }, "password": "TemporaryP@ssword123!", "changePasswordAtNextLogin": true }

3. The Action: Invite to Slack

Add another HTTP Request node to handle the Slack invitation.

  • Method: POST
  • URL: https://slack.com/api/admin.users.invite
  • Authentication: Header Auth. Use your Slack OAuth Token.
  • Body (JSON): Use the email address generated in the previous step.

Example Body:

{ "email": "{{ $('Create Google User').json.primaryEmail }}", "channel_ids": "C0XXXXXXXXX,C0YYYYYYYYY", "real_name": "{{ $('Notion Trigger').json.properties.Name.title[0].plain_text }}", "is_restricted": false }

4. The Action: Create Jira User

Add a final HTTP Request node for Jira.

  • Method: POST
  • URL: https://your-domain.atlassian.net/rest/api/3/user
  • Authentication: Header Auth or Basic Auth. Use your Atlassian email and API token.
  • Body (JSON): Reference the data from the Google and Notion nodes.

Example Body:

{ "emailAddress": "{{ $('Create Google User').json.primaryEmail }}", "displayName": "{{ $('Create Google User').json.name.fullName }}" }

5. The Follow-up: Update Notion Status

To complete the automation loop, add a Notion node at the end.

  • Resource: Database/Page
  • Operation: Update
  • Database ID: Select your onboarding database.
  • Page ID: Map this from your initial Notion Trigger node: {{ $('Notion Trigger').json.id }}.
  • Properties: Add the Status property and set its value to "Accounts Provisioned". This prevents the workflow from running again for the same user and provides a clear audit trail.

Making Your Workflow Production-Ready

Once the basic flow is working, consider these enhancements:

  • Error Handling: What if a user already exists in Jira? Wrap each HTTP Request node in its own error handling path. Use the Continue on Fail setting and route failures to a Slack message that alerts your IT team to manually intervene.
  • Secure Password Generation: Instead of a hardcoded temporary password, use a Code Node to generate a strong, random password for the Google Workspace account. Send this password to the hiring manager or HR via a secure method.
  • Expand Your Stack: This pattern is easily extensible. Add nodes to create accounts in Asana, GitHub, HubSpot, or any other tool your team uses that has a public API.
  • Build the Offboarding Twin: Duplicate this workflow and adapt it for employee offboarding. Trigger it when a Notion status changes to "Terminated", and change the API calls from create to suspend or delete users. This is a critical step for maintaining security.

Enjoyed this article?

Share it with others who might find it useful