curl --request POST \
--url https://api.pomerado.ai/v1/support/slack-channel \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"organization_name": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({organization_name: '<string>'})
};
fetch('https://api.pomerado.ai/v1/support/slack-channel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pomerado.ai/v1/support/slack-channel"
payload = { "organization_name": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"name": "<string>",
"invited_email": "<string>",
"slack_url": "<string>",
"created_at": "<string>"
}{
"id": "<string>",
"name": "<string>",
"invited_email": "<string>",
"slack_url": "<string>",
"created_at": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}Create your shared Slack channel
Create your Business account’s private Slack channel with the Pomerado team, named after your organization’s WorkOS name (acme-corp-pomerado), and send a Slack Connect invitation to the requesting Owner or Admin’s own sign-up email; a work email is preferred, but a personal one works. Pass organization_name only when your organization has no name yet (GET answers organization_name null): it is saved to your organization. The Pomerado team joins it at once; accept the invitation from the email to join it from your own Slack workspace. Your account has one channel: once it exists, this answers it with 200 and sends nothing. Business Owners and Admins only.
curl --request POST \
--url https://api.pomerado.ai/v1/support/slack-channel \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"organization_name": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({organization_name: '<string>'})
};
fetch('https://api.pomerado.ai/v1/support/slack-channel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pomerado.ai/v1/support/slack-channel"
payload = { "organization_name": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"name": "<string>",
"invited_email": "<string>",
"slack_url": "<string>",
"created_at": "<string>"
}{
"id": "<string>",
"name": "<string>",
"invited_email": "<string>",
"slack_url": "<string>",
"created_at": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}Authorization: Bearer <token> with Dashboard session, Pomerado MCP OAuth token, API key.
Permission: any signed-in member, on their own records.
Effect: Write: creates or changes something in your account.
Errors: invalid_request (400), unauthorized (401), reauthentication_required (401), slack_channel_unavailable (403), forbidden (403), slack_channel_in_progress (409), request_too_large (413), internal_error (500), temporarily_unavailable (503). Every error has the same envelope.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Your organization's name, required only when it has none yet; it is saved to your organization and names the channel
1 - 120Response
The channel your account already has
The Slack channel's ID
The channel's name without #, for example acme-corp-pomerado
The email the Slack Connect invitation went to: the email of the Owner or Admin who created the channel
Opens the channel in Slack once the invitation is accepted
a string to be decoded into a Date