Integration Guide

Send Contractor COI and License Alerts to Slack — Without Code

Contractor compliance Slack notifications let your team see automatic alerts when a sub's COI, trade license, or W-9 status changes — without anyone manually checking the dashboard. Use Slack Workflow Builder for a native, no-third-party setup (Slack Pro or above), or Zapier/Make if you're on the Slack free tier. Setup takes about 10 minutes either way.

What you can do

Post to #compliance when a COI hits 30 days out
Alert #jobsite when a subcontractor's license expires
Alert your team when a new sub doesn't have a W-9 on file
Route different events to different channels
Include contractor name, expiry date, and days remaining
No third-party account needed on paid Slack plans

Which approach should I use?

Slack Workflow Builder

Lives entirely inside Slack. No Zapier account needed.

Requires Slack Pro or above

Zapier or Make

Works on any Slack plan, including free.

Requires a Zapier or Make account

Before you start (Workflow Builder path)

  • 1 A TrackMyVendor account with owner access
  • 2 A Slack workspace on the Pro, Business+, or Enterprise plan
  • 3 Permission to create workflows in your Slack workspace
1

Open Workflow Builder and create a webhook trigger

In Slack, click Tools in the left sidebar → Workflow Builder. Click New workflowFrom a webhook. Name it something like "TrackMyVendor COI Alerts".

Slack Workflow Builder path:

Tools → Workflow Builder → New workflow → From a webhook → Name it → Next

Slack will show you a unique webhook URL on the next screen. You'll copy this in Step 3.

2

Tell Slack which fields to include in the message

On the webhook setup screen, click Add a variable for each field you want to use in your message. TrackMyVendor's payload looks like this — define a variable for each key you want:

{
  "event": "contractor.coi_expiring",
  "created_at": "2026-05-08T14:00:00Z",
  "data": {
    "vendor_name": "Apex Electrical LLC",
    "expiration_date": "2026-06-01",
    "days_left": 24
  }
}
event Text The event type, e.g. contractor.coi_expiring
data.vendor_name Text Contractor company name
data.expiration_date Text Expiration date string
data.days_left Number Days until expiration
3

Copy the webhook URL and add it to TrackMyVendor

After defining your variables, Slack shows the webhook URL. It looks like:

https://hooks.slack.com/workflows/T.../A.../...

Copy this URL. In TrackMyVendor go to Settings → Integrations → Webhook EndpointsAdd Endpoint.

URL Paste the Slack workflow webhook URL
Label Something like "Slack Workflow — #compliance COI alerts"
Events Select the events you want — contractor.coi_expiring, contractor.license_expiring, etc.
4

Add a "Send a message to a channel" step

Back in Workflow Builder, click Add a stepSend a message. Choose the channel (e.g. #compliance) and compose the message using your variables.

Send to Choose a channel — #compliance, #jobsite, or a specific person
Message Compose using your variables (they appear as blue pills)

Sample message using variables:

:warning: COI expiring{{data.vendor_name}}
Expires {{data.expiration_date}} ({{data.days_left}} days remaining)
Event: {{event}}

Insert variables by clicking inside the message field and selecting them from the variable picker, or type @ to open the picker.

5

Publish the workflow and test it

Click Publish. The workflow is now live. To test it, add a contractor in TrackMyVendor — this fires contractor.created immediately. Within seconds your channel should show the message.

Tip: create one workflow per event type

Build a separate workflow for each event and channel pair — COI alerts to #compliance, license warnings to #jobsite, W-9 missing to a DM. Each workflow subscribes to its own TrackMyVendor endpoint, or you can share one endpoint and add an If/then branch step to filter by the event variable. TrackMyVendor fires the same event again at each threshold (90/60/30/7 days), so if no one acts, another alert fires at the next window automatically.

On the Slack free plan? Use Zapier or Make instead

Workflow Builder requires a paid Slack plan. If you're on the free tier, use Zapier or Make as a bridge — they receive the TrackMyVendor webhook and post a formatted message to your Slack channel. Both work with free Slack.

Zapier integration guide → Make integration guide →

Event reference

Event When it fires Key payload fields
contractor.created A new contractor is added to your roster vendor_id, vendor_name
contractor.compliance_changed Overall compliance status changes (pass ↔ fail) vendor_name, from, to
contractor.license_expiring License expiration enters an alert window (90/60/30/7d) vendor_name, expiration_date, days_left, window
contractor.coi_expiring COI/insurance expiration enters an alert window vendor_name, expiration_date, days_left, window
contractor.w9_missing A contractor who had a W-9 on file no longer does vendor_id, vendor_name

Frequently asked questions

Does TrackMyVendor post directly to Slack?
TrackMyVendor sends standard JSON webhooks. With Slack Workflow Builder (paid plans), you receive those webhooks and post formatted messages to any channel — no third-party tool required. On the free tier, use Zapier or Make as a bridge.
What Slack plan do I need for Workflow Builder?
Slack Workflow Builder is available on Pro ($7.25/user/mo), Business+, and Enterprise Grid plans. It is not available on the Slack free plan. If you're on the free tier, see the Zapier or Make integration guides below.
Can I post to multiple Slack channels?
Yes. Create one workflow per channel. Use an If/then branch step on the event variable to route contractor.coi_expiring to #compliance and contractor.license_expiring to #jobsite — all from one TrackMyVendor endpoint.
Can I post to a private Slack channel?
Yes. In the Workflow Builder Send a message step, choose any channel you're a member of, including private channels. The workflow runs under your Slack account credentials.
What if I'm on the Slack free plan?
Workflow Builder isn't available on the free tier. Use Zapier or Make instead — add a webhook trigger, paste the URL into TrackMyVendor, then add Slack as the action step. Both platforms have free tiers that cover this setup. See the Zapier guide or Make guide.

"We get a Slack alert in our #jobsite channel the moment a sub's COI hits 30 days out. I haven't manually checked an expiration date since we set this up."

General Contractor, Dallas TX — managing 40 subs across 6 active job sites

Using Microsoft Teams?

Post compliance alerts via Power Automate — free with Microsoft 365.

Teams guide →

Want Zapier too?

Connect compliance alerts to 6,000+ apps beyond Slack.

Zapier guide →

Don't have a TrackMyVendor account yet?

Track your first 25 subs free — no credit card required.

Start free →

Already have an account?

Add your Slack workflow webhook URL as an endpoint in Settings → Integrations.

Open Integrations Settings