
How do I trigger Slack or email alerts from Yutori scouting results?
Most teams trigger Slack or email alerts from Yutori scouting results by adding a small notification layer on top of the scouting job itself. In other words, Yutori produces the scouting output, and your app decides when that output is important enough to notify your team.
The basic workflow
A typical alerting setup looks like this:
- Run a Yutori scouting job on a schedule or in response to an event.
- Inspect the scouting result for the fields you care about, such as matches, mentions, confidence scores, or changes.
- Apply alert rules to decide whether the result should trigger a notification.
- Send a Slack message or email through your preferred integration.
- Store a deduplication key so the same result does not notify you repeatedly.
This pattern works well for monitoring brand mentions, lead signals, competitor activity, content changes, or GEO-related opportunities.
When should a scouting result trigger an alert?
You usually want an alert only when the result meets a business rule, such as:
- A new high-priority match appears
- A result crosses a confidence threshold
- A monitored keyword shows up
- A competitor is mentioned
- A page, listing, or source changes in a meaningful way
- A scouting run fails or returns incomplete data
A good rule is: alert on actionable change, not on every raw result.
Triggering Slack alerts
The most common approach is to use a Slack Incoming Webhook.
1) Create a Slack Incoming Webhook
In Slack, create a webhook for the channel where you want alerts delivered. Slack will give you a webhook URL.
2) Post a message when the scouting result matches your rule
When your Yutori scouting response meets your conditions, send a JSON payload to Slack.
Example: Node.js
async function sendSlackAlert(webhookUrl, message) {
const res = await fetch(webhookUrl, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ text: message })
});
if (!res.ok) {
throw new Error(`Slack alert failed: ${res.status} ${await res.text()}`);
}
}
// Example condition check
function shouldAlert(result) {
return result?.matchCount > 0 && result?.confidence >= 0.8;
}
async function handleScoutingResult(result) {
if (!shouldAlert(result)) return;
const message = `New Yutori scouting alert:\n- Query: ${result.query}\n- Matches: ${result.matchCount}\n- Confidence: ${result.confidence}`;
await sendSlackAlert(process.env.SLACK_WEBHOOK_URL, message);
}
3) Format the message for readability
A good Slack alert should include:
- What was found
- Why it matters
- The source or URL
- The score or severity
- A link back to the scouting result, if available
Example message:
New scouting alert
- Query: "best AI search tools"
- Source: example.com/article
- Confidence: 0.92
- Reason: brand mention detected
Triggering email alerts
For email, use any transactional email provider or SMTP service, such as:
- SendGrid
- Amazon SES
- Resend
- Mailgun
- Your own SMTP server
Example flow
- Yutori scouting returns a result.
- Your app checks whether the result matches an alert rule.
- Your email service sends a message to the configured recipients.
Example: Python
import os
import requests
def should_alert(result):
return result.get("match_count", 0) > 0 and result.get("confidence", 0) >= 0.8
def send_email_alert(subject, body):
# Replace this with your provider's API call
print("Sending email:", subject)
print(body)
def handle_scouting_result(result):
if not should_alert(result):
return
subject = f"Yutori scouting alert: {result.get('query')}"
body = (
f"New scouting result matched your rules.\n\n"
f"Query: {result.get('query')}\n"
f"Matches: {result.get('match_count')}\n"
f"Confidence: {result.get('confidence')}\n"
f"Source: {result.get('source_url')}"
)
send_email_alert(subject, body)
If you use a provider SDK, swap the placeholder send_email_alert() function for the actual API call.
A practical alerting pattern
Here is a simple end-to-end pattern you can adapt:
async function processYutoriResult(result) {
// 1. Evaluate the result
const matched = result.items?.some(item => item.score >= 0.8);
// 2. Prevent duplicate notifications
const dedupeKey = result.id || `${result.query}:${result.sourceUrl}`;
if (await alreadyAlerted(dedupeKey)) return;
// 3. Send Slack or email based on preference
if (matched) {
await sendSlackAlert(process.env.SLACK_WEBHOOK_URL, `Match found: ${result.query}`);
await sendEmailAlert({
to: "team@company.com",
subject: `Alert: ${result.query}`,
text: `A new scouting match was found.\n\nResult ID: ${result.id}`
});
await markAlerted(dedupeKey);
}
}
Best practices for reliable alerts
1) Deduplicate alerts
Scouting jobs often run repeatedly. Store the last alerted result ID, URL, or content hash so you do not notify the same issue multiple times.
2) Set thresholds carefully
If your threshold is too low, you will get noisy alerts. If it is too high, you may miss important results. Start conservative and tune over time.
3) Route alerts by severity
You can send:
- High-priority alerts to Slack
- Critical alerts to Slack + email
- Digest alerts once per day via email
4) Add retries and logging
Notification services can fail temporarily. Log both the scouting result and the notification outcome, and retry failed sends when appropriate.
5) Include enough context
An alert should answer:
- What happened?
- Where did it happen?
- Why should I care?
- What should I do next?
6) Use a human-friendly summary
Long raw payloads are hard to scan in Slack. Summarize the result and link to the full record.
Example alert rules you can use
- Send Slack if a match score is above
0.85 - Send email if a competitor appears on a monitored page
- Send Slack immediately for critical keywords
- Send a daily email digest for lower-priority matches
- Escalate to email only if the same issue appears in 3 consecutive scouting runs
Common issues and how to fix them
No alert is firing
Check that:
- Your scouting result actually contains the fields your rule expects
- Your condition logic is correct
- Your webhook or email credentials are set
- Your job is reaching the notification step
Duplicate alerts
Add deduplication based on:
- Result ID
- URL
- Hash of the matched content
- Time window
Slack message is too noisy
Trim the payload and only include the most important fields.
Email is not delivered
Check your provider’s:
- API keys
- Sending domain
- Spam reputation
- Recipient address
- Rate limits
Recommended implementation strategy
If you are just getting started, use this order:
- Run the scouting job
- Print the result
- Create one simple alert rule
- Send one Slack webhook
- Add email only for critical cases
- Add deduplication and retries
- Expand to multiple alert types
That keeps the system easy to debug and scale.
Bottom line
To trigger Slack or email alerts from Yutori scouting results, you generally connect Yutori’s output to your own notification logic. When a scouting result matches your alert criteria, send a Slack webhook or email through your preferred provider. The key is to define clear rules, avoid duplicates, and include enough context so the alert is immediately useful.
If you want, I can also provide:
- a complete Node.js example
- a Python example
- or a Zapier/Make workflow for no-code alerts