TombaTomba
Start free
  • Documentation
  • API reference
  • SDKs & CLI
  • AI & MCP
  • Integrations
  • Enterprise
  • Migration guides

Find, verify and enrich B2B contacts from public sources, in the app, your spreadsheet or through the API.

GDPR & CCPA

// docs

  • API changelog
  • Support options
  • Security

// platform

  • Dashboard
  • Pricing
  • API status

// resources

  • Help center
  • Product updates
  • TombaBot crawler

// company

  • Website
  • Contact us
  • Edit or remove your data

© 2021–2026 Tomba.io

  • Terms of service
  • Privacy policy
  • Cookie policy
  • Security policy
  • GDPR
  • CCPA
SDKs
CLI
    InstallationAuthenticationCLI commandsBulk CSV processingLocal HTTP serverAI chatSkillsSlack slash commands
CLI

Slack slash commands

Slash commands such as /checker jane.doe@stripe.com run Tomba lookups from Slack. They're served by your own tomba serve instance: you create a Slack app from the manifest on this page and point its commands at your server.

How it works

When someone runs a command, Slack sends the text after the command to the command's request URL. With ?slack=true in the URL, tomba serve uses that text as the input, calls the Tomba API with the account the CLI is signed in to, and answers with a Slack message. Slack shows the reply only to the person who ran the command.

Every command is a Tomba API request billed to that account, as described in Credit costs. The server doesn't verify Slack's request signatures, so anyone who knows the URL can run lookups on your credits.

Prerequisites

  • A server with the CLI installed and signed in. tomba login --api-key suits a server; see Authentication.
  • A public HTTPS URL for that server, with a valid certificate. Slack sends slash commands only to HTTPS URLs.
  • Permission to create apps in your Slack workspace.

Expose the server

tomba serve has no authentication and exposes routes that return your API secret and manage your keys, so don't publish its port. Run it behind a reverse proxy that terminates HTTPS and forwards only the routes the commands use, and block port 3000 at your firewall.

An nginx server block that does this:

Code
server { listen 443 ssl; server_name tomba-slack.example.com; ssl_certificate /etc/ssl/certs/tomba-slack.example.com.pem; ssl_certificate_key /etc/ssl/private/tomba-slack.example.com.key; location ~ ^/(search|verify|enrich|author|linkedin)$ { limit_except POST { deny all; } proxy_pass http://127.0.0.1:3000; } location / { return 404; } }

Then start the server on the same host:

TerminalCode
tomba serve --port 3000

Create the Slack app

  1. Replace https://tomba-slack.example.com in the manifest below with your server's URL.
  2. Open api.slack.com/apps, choose Create New App, then From a manifest, select your workspace, and paste the manifest.
  3. Install the app to your workspace.
Code
{ "display_information": { "name": "Tomba", "description": "Find and verify email addresses with Tomba." }, "features": { "bot_user": { "display_name": "tomba", "always_online": false }, "slash_commands": [ { "command": "/domain", "url": "https://tomba-slack.example.com/search?slack=true", "description": "Find email addresses at a domain.", "usage_hint": "stripe.com", "should_escape": false }, { "command": "/checker", "url": "https://tomba-slack.example.com/verify?slack=true", "description": "Verify an email address.", "usage_hint": "jane.doe@stripe.com", "should_escape": false }, { "command": "/enrich", "url": "https://tomba-slack.example.com/enrich?slack=true", "description": "Look up the person behind an email address.", "usage_hint": "jane.doe@stripe.com", "should_escape": false }, { "command": "/author", "url": "https://tomba-slack.example.com/author?slack=true", "description": "Find the email address of an article's author.", "usage_hint": "https://stripe.com/blog/example-article", "should_escape": false }, { "command": "/linkedin", "url": "https://tomba-slack.example.com/linkedin?slack=true", "description": "Find the email address for a LinkedIn profile.", "usage_hint": "https://www.linkedin.com/in/jane-doe-example", "should_escape": false } ] }, "oauth_config": { "scopes": { "bot": ["commands"] } }, "settings": { "org_deploy_enabled": false, "socket_mode_enabled": false, "token_rotation_enabled": false } }

Commands

CommandRouteInputReply
/domain/searchA domainThe addresses found, with name, position, location, and profiles
/checker/verifyAn email addressFormat, mail server, and deliverability status, with WHOIS details
/enrich/enrichAn email addressThe person's name, position, company, location, profiles, and sources
/author/authorAn article URLThe author's email address and profile
/linkedin/linkedinA LinkedIn profile URLThe person's email address and profile

For example:

Code
/domain stripe.com /checker jane.doe@stripe.com

Troubleshooting

ProblemCause and fix
Slack reports that the command failedThe server answered with an error status: the lookup found nothing, the input was invalid, or the API call failed, for example on a rate limit. Slack doesn't show the reason. Check the server's log, and run the same lookup with the CLI, such as tomba verify --target jane.doe@stripe.com, to see the API's status.
Slack reports a timeoutSlack waits 3 seconds for a reply, and some lookups take longer. The lookup still runs and uses credits as usual.
/checker fails for a Gmail or other webmail addressThe server answers with an error for addresses at webmail and disposable email domains, after the verification has run.
Last modified on September 30, 2026
Skills
On this page
  • How it works
  • Prerequisites
  • Expose the server
  • Create the Slack app
  • Commands
  • Troubleshooting
JSON