# How to Build a Custom Slack App for Client Onboarding

> You can onboard clients through a custom Slack app by creating the app in Slack's developer area, connecting it to Make.com through a webhook, then building automations that post button messages into a client channel. When the client presses a button, Make.com receives it and runs the next onboarding step. It turns onboarding from a manual checkout into a self checkout.

Source: https://fluxomate.com/blog/custom-slack-app-for-client-onboarding.html  
Published by Fluxomate (https://fluxomate.com/), 2024-07-08. Section: Automation templates.
Video: https://www.youtube.com/watch?v=MnRLQizVV6o

## Key takeaways

- The old model waits days for an onboarding call before service starts. The new model invites the client to Slack straight after payment and lets them start through a button.
- Creating the Slack app needs no programming: name it, add scopes, install it to your workspace.
- Make.com needs a custom webhook for button presses and a Slack bot connection using the app's client ID and secret.
- Automation one runs on payment: create a channel, create a project record, invite the team and post a message with a button.
- Automation two runs on the button press: filter, parse the JSON, find the project, update it, create tasks and send the next message.
- Always offer a help button. Just because you can automate something does not mean you should.

## What is a self checkout onboarding model?

In the old model, a client pays, you schedule an onboarding call, you wait a few days for it, and only then does the service start. That can cause delays, and you want the client to get a first win as soon as possible.

In the new model, you invite the client to Slack straight after payment. When they join, they press a button and a bot onboards them step by step, so the service can start without delay. It is like a supermarket self checkout rather than a cashier. Agencies are not supermarkets, and many need human contact, so treat this as a way to streamline your process, not replace the human side. The same approach works for onboarding new employees.


## How do you create the Slack app?

No coding is involved.

1. Go to Slack's developer site, sign in and open your apps. Choose to create a new app from scratch, name it and pick your workspace.
2. Under OAuth and permissions, add bot token scopes and user token scopes. For this build we added chat write, im read and im write. You can add more later, for example for canvases, channels or inviting team members.
3. Under basic information, set the app's icon, background colour, name and description.
4. Install the app to your workspace and press allow. The app will then appear under apps in Slack.

## How do you connect the app to Make.com?

Two connections are needed. We used Make.com, and it may be possible in other tools, but we have not tested them.

- **The webhook.** In Make.com, create a scenario with a custom webhook trigger and copy its address. In your Slack app, open interactivity and shortcuts, turn it on and paste the webhook address in. Button presses now reach Make.com.
- **The Slack bot connection.** Add a Slack module in Make.com, create a new connection as a Slack bot, and open advanced settings. Paste in the client ID and client secret from your Slack app's basic information page. Saving will return an error showing a redirect address. Copy it, add it under redirect URLs in OAuth and permissions in your Slack app, save, then repeat the connection and press allow.

## Automation one: what happens when a client pays?

The trigger depends on your onboarding, for example a payment or a signed contract. In the demo we used a simple trigger with test values for the company name, retainer, service and email. The modules are:

1. Create a private Slack channel named after the company. Slack rejects names with spaces.
2. Create a project record in Airtable with the company name, retainer, a status of payment complete and the Slack channel ID. The channel ID is what links later steps back to the project. Any CRM or database works.
3. Invite the relevant team members to the channel with the invite users module.
4. Create a Slack message using the bot connection you set up. Use the blocks field, not the text field, and paste in blocks from Slack's Block Kit Builder. We used the onboarding template, personalised it with the company name, and changed the button text and value to something unique, such as a hello value. That value identifies the button later.
5. Create an Airtable task to invite the client to Slack, with their email and a link to the project. Automatic invites need an Enterprise Slack account, so otherwise a team member invites them by hand.

## Automation two: what happens when the client presses the button?

The trigger is the same webhook. Because every button press arrives through one webhook, you need to filter by button. The steps are:

1. Parse the JSON from the webhook payload so you can use its fields.
2. Add a router with a filter on the action value matching the button's unique value. Only that button's data continues.
3. Search Airtable for the project using the Slack channel ID from the payload.
4. Update the project record, for example to a new status.
5. Create Airtable tasks for your team, such as creating a contract. You can create none, one or several.
6. Send another Slack message with blocks and a new button with its own value, so the client moves to the next step. The next steps in our example were signing the contract and checking billing.

## What other automations can you add?

Two further ideas use the same method. First, a trigger variation: rather than relying on the client to press a button after signing, an e signature tool can trigger the scenario, which finds the project and posts the next message automatically.

Second, a help button. Add a secondary button to each message. When pressed, it finds the project, finds the support person for that account, notifies them and tells the client someone will be in touch. Just because you can automate something does not mean you should, and clients must always be able to reach a person.

Before running, invite your app to the client channel, or give it permission to access channels it is not part of. The video above walks through the whole build, and the free templates for this guide include the Make.com blueprints and the Airtable database.


## Questions people ask

### Do I need to code to build a Slack app for onboarding?

No. Creating the app, adding scopes and connecting it to Make.com are all done through settings pages. Message layouts come from Slack's Block Kit Builder templates, which you copy and edit.

### How does Make.com know when a client presses a button?

You turn on interactivity in the Slack app and paste in the address of a Make.com custom webhook. Each press sends data to that webhook. A filter on the button's value makes sure only the right button runs the right automation.

### Can I invite clients to Slack automatically?

Only with an Enterprise Slack account. Otherwise, create a task for your team to invite the client by hand.

### Can I use this for employee onboarding too?

Yes. The method is interchangeable. Replace the client with a new team member and change the steps and messages to suit.

Tools used: Slack, Make.com, Airtable, Block Kit Builder, ChatGPT

Free templates for this guide: https://fluxomate.com/resources.html?r=custom-slack-app-for-client-onboarding
