Time: 10 minutes | Level: Beginner
You will learn: How to create a Slack app and collect the webhook URL, bot token and signing secret.
You will need: A Slack workspace where you can add apps, and a test channel.
Before NetSuite can talk to Slack, Slack needs to know who is calling. That is what a Slack app is: a named, permissioned identity that your NetSuite scripts use to post messages.
This page walks you through creating one. It takes about ten minutes. Slack occasionally rearranges its menus, so if a label looks slightly different, look for the closest match.
Before you start
- You need permission to add apps to your Slack workspace. If your workspace requires admin approval, ask your Slack admin to approve the app when you get to the install step.
- Decide on a test channel first, for example
#netsuite-test. Please do not point your first experiments at a busy company channel.
Part A: Create the app
- Go to api.slack.com/apps and sign in to your workspace.
- Click Create New App.
- Choose From scratch.
- Give it a clear name such as
NetSuite Alerts. People will see this name on every message, so make it obvious. - Pick your workspace and click Create App.
You now have an empty app. Next we give it abilities.
Part B: Turn on an incoming webhook (the easy route)
An incoming webhook is a private URL that posts to one channel. It is perfect for your first alert.
- In the left menu, click Incoming Webhooks.
- Switch Activate Incoming Webhooks to On.
- Scroll down and click Add New Webhook to Workspace.
- Choose your test channel (for example
#netsuite-test) and click Allow. - Slack shows a Webhook URL that starts with
https://hooks.slack.com/services/. Copy it and keep it somewhere private for now.
Treat this URL like a password. Anyone who has it can post to that channel as your app. Never paste it into a public forum, a screenshot or a shared document. If it leaks, you can delete that webhook in Slack and create a new one.
Test it in 30 seconds
Before touching NetSuite, prove the webhook works. From any computer with curl:
curl -X POST -H "Content-type: application/json" \
--data '{"text":"Hello from my brand new NetSuite Alerts app!"}' \
YOUR_WEBHOOK_URL
Slack replies with ok and the message appears in your channel. If it does, the Slack side is healthy.
Part C: Add a bot token (for buttons, DMs and lookups)
You can skip this part until you reach the interactive pages, but it is easier to do it now while you are here.
- In the left menu, click OAuth & Permissions.
- Scroll to Scopes, then Bot Token Scopes.
- Click Add an OAuth Scope and add the following:
| Scope | Why you need it |
|---|---|
chat:write |
Post messages as the app |
chat:write.public |
Post to public channels without having to invite the app first |
users:read |
Look up people in the workspace |
users:read.email |
Match a Slack user to a NetSuite employee by email |
commands |
Use slash commands (needed on the slash command page) |
- Scroll back up and click Install to Workspace (or Reinstall if you change scopes later). Click Allow.
- Copy the Bot User OAuth Token. It starts with
xoxb-.
Only request the scopes you really need. Fewer permissions means less risk and an easier approval from your Slack admin.
Part D: Find your Signing Secret
When Slack calls you (for a button click or slash command), you must check the call genuinely came from Slack. That check uses the signing secret.
- Click Basic Information in the left menu.
- Under App Credentials, find Signing Secret and click Show.
- Copy it and store it privately, the same as the other credentials.
Part E: Make the app look friendly (optional but nice)
Still on Basic Information, scroll to Display Information. Add a short description (“Sends NetSuite alerts to Slack”) and an icon. It makes messages feel official rather than mysterious.
Your checklist
By the end of this page you should have:
- β A Slack app named something obvious
- β A webhook URL for a test channel
- β A bot token starting with
xoxb- - β A signing secret
- β All three saved somewhere private (not in email or chat)
Common snags
- “I do not see Add New Webhook to Workspace.” Make sure Incoming Webhooks is switched on first.
- “Install to Workspace is greyed out or asks for approval.” Your workspace is set to require admin approval. Send your admin the app name and the scopes above.
- “The curl test returns
invalid_payload.” Check that your JSON is valid, especially the quotes. - “The curl test returns
no_serviceorchannel_not_found.” The webhook was deleted or the channel was archived. Create a new webhook.
What is next
Your Slack app is ready. In Step 2 we write the SuiteScript that sends a real alert from NetSuite.