MentionBird

create_alert

Create an alert rule. mode "instant" sends each matching mention as it happens; "hourly" sends one digest every UTC hour (five minutes past) for the previous hour, nothing when it had no mention over the floor, takes no schedule and no email channel (Slack, Telegram, webhook); "daily" sends one digest at schedule.hour in schedule.timezone; "weekly" sends one a week on schedule.weekday (0 Sunday to 6 Saturday). filter narrows by keywordIds, platforms, minRelevance (the relevance floor: absent sends relevant mentions only, 40 and up; 0 sends every scored match, noise included), minConfidence, sentiments, intents, excludeAuthors, minFollowers, tags, linkHosts (the hosts a post links to, a host or any subdomain of it). channelIds come from list_channels.

Remote pau/mentio

Remote (network-hosted)

Other tools also called create_alert? See providers with this name

Input Schema


            {
  "type": "object",
  "properties": {
    "mode": {
      "enum": [
        "instant",
        "hourly",
        "daily",
        "weekly"
      ],
      "type": "string",
      "default": "instant"
    },
    "name": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1
    },
    "event": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$",
          "maxLength": 60
        },
        {
          "type": "null"
        }
      ],
      "description": "Custom event name for webhook payloads; null for the mode default."
    },
    "filter": {
      "type": "object",
      "default": {},
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 40,
            "minLength": 1
          },
          "maxItems": 20,
          "description": "Only authors your workspace tagged with any of these."
        },
        "anyOf": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "q": {
                "type": "string",
                "maxLength": 200,
                "minLength": 1,
                "description": "Substring in the post text or the author's name."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 40,
                  "minLength": 1
                },
                "maxItems": 20,
                "description": "Only authors your workspace tagged with any of these."
              },
              "status": {
                "enum": [
                  "open",
                  "ignored",
                  "done"
                ],
                "type": "string",
                "description": "Only mentions in this status: open, ignored, done."
              },
              "intents": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 40,
                  "minLength": 1
                },
                "maxItems": 20,
                "description": "Only mentions carrying any of these intent or topic tags."
              },
              "isReply": {
                "type": "boolean",
                "description": "true: only replies and comments; false: only top-level posts."
              },
              "notTags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 40,
                  "minLength": 1
                },
                "maxItems": 20,
                "description": "Never authors tagged with any of these."
              },
              "ratings": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "maximum": 5,
                  "minimum": 1
                },
                "maxItems": 5,
                "description": "Only app store reviews with any of these star ratings; every other post fails it."
              },
              "groupIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "maxItems": 50,
                "description": "Only matches of keywords in any of these groups (grp_...)."
              },
              "minLikes": {
                "type": "integer",
                "minimum": 0,
                "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes."
              },
              "minViews": {
                "type": "integer",
                "minimum": 0,
                "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes."
              },
              "relevant": {
                "type": "boolean",
                "description": "true: only mentions the classifier scored relevant; false: only the rest."
              },
              "automated": {
                "type": "boolean",
                "description": "true: only posts that read as machine-made; false: only the rest."
              },
              "languages": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^[a-z]{2}$"
                },
                "maxItems": 20,
                "description": "Only posts in any of these languages (ISO 639-1)."
              },
              "linkHosts": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 200,
                  "minLength": 1
                },
                "maxItems": 20,
                "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it."
              },
              "minQuotes": {
                "type": "integer",
                "minimum": 0,
                "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes."
              },
              "platforms": {
                "type": "array",
                "items": {
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps"
                  ],
                  "type": "string",
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place)."
                },
                "maxItems": 20,
                "description": "Only posts from any of these platforms."
              },
              "keywordIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "maxItems": 50,
                "description": "Only matches of any of these keywords."
              },
              "minReplies": {
                "type": "integer",
                "minimum": 0,
                "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes."
              },
              "minReposts": {
                "type": "integer",
                "minimum": 0,
                "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes."
              },
              "notIntents": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 40,
                  "minLength": 1
                },
                "maxItems": 20,
                "description": "Never mentions carrying these tags."
              },
              "notRatings": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "maximum": 5,
                  "minimum": 1
                },
                "maxItems": 5,
                "description": "Never reviews with these star ratings; posts that are not reviews still pass."
              },
              "sentiments": {
                "type": "array",
                "items": {
                  "enum": [
                    "positive",
                    "neutral",
                    "negative"
                  ],
                  "type": "string",
                  "description": "Classifier sentiment."
                },
                "maxItems": 3,
                "description": "Only these sentiments."
              },
              "notGroupIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "maxItems": 50,
                "description": "Never matches of keywords in these groups."
              },
              "keywordKinds": {
                "type": "array",
                "items": {
                  "enum": [
                    "brand",
                    "competitor",
                    "topic"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "description": "Only matches of keywords of any of these kinds: brand, competitor, topic."
              },
              "maxFollowers": {
                "type": "integer",
                "minimum": 0,
                "description": "Only authors with at most this many followers; unknown reach never passes."
              },
              "minBookmarks": {
                "type": "integer",
                "minimum": 0,
                "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes."
              },
              "minFollowers": {
                "type": "integer",
                "minimum": 0,
                "description": "Only authors with at least this many followers; unknown reach never passes."
              },
              "minRelevance": {
                "type": "integer",
                "maximum": 100,
                "minimum": 0,
                "description": "Only mentions scored at least this."
              },
              "notLanguages": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^[a-z]{2}$"
                },
                "maxItems": 20,
                "description": "Never posts in these languages; an unknown language still passes."
              },
              "notLinkHosts": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 200,
                  "minLength": 1
                },
                "maxItems": 20,
                "description": "Never posts linking to these hosts."
              },
              "notPlatforms": {
                "type": "array",
                "items": {
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps"
                  ],
                  "type": "string",
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place)."
                },
                "maxItems": 20,
                "description": "Never posts from these platforms."
              },
              "minConfidence": {
                "type": "number",
                "maximum": 1,
                "minimum": 0,
                "description": "Only mentions whose classifier confidence is at least this."
              },
              "notKeywordIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "maxItems": 50,
                "description": "Never matches of these keywords."
              },
              "notSentiments": {
                "type": "array",
                "items": {
                  "enum": [
                    "positive",
                    "neutral",
                    "negative"
                  ],
                  "type": "string",
                  "description": "Classifier sentiment."
                },
                "maxItems": 3,
                "description": "Never these sentiments; an unscored mention still passes."
              },
              "excludeAuthors": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 200,
                  "minLength": 1
                },
                "maxItems": 200,
                "description": "Never these authors: display names, handles or profile URLs."
              }
            },
            "description": "A group of conditions, all of which must hold: the vocabulary of a view filter, without anyOf.",
            "additionalProperties": false
          },
          "maxItems": 10,
          "minItems": 1,
          "description": "OR across groups: a mention passes when it meets every condition of at least one group (1 to 10 groups). The other conditions still apply to every mention: the whole filter is (other conditions) AND (group 1 OR group 2 ...). A group takes the conditions of a view filter (platforms, sentiments, intents, keywordKinds, the not lists ...), with no anyOf of its own."
        },
        "intents": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "At least one of these intent or topic tags."
        },
        "ratings": {
          "type": "array",
          "items": {
            "type": "integer",
            "maximum": 5,
            "minimum": 1
          },
          "maxItems": 5,
          "description": "Only app store reviews with any of these star ratings (1 to 5): [1, 2] sends the unhappy ones. Every other post fails it."
        },
        "groupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only keywords in these groups (grp_...): one rule per customer, say."
        },
        "minLikes": {
          "type": "integer",
          "minimum": 0,
          "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes."
        },
        "minViews": {
          "type": "integer",
          "minimum": 0,
          "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes."
        },
        "automated": {
          "type": "boolean",
          "description": "true: only posts that read as machine-made (bots, templated posts); false: only the rest. Omit for both."
        },
        "languages": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[a-z]{2}$"
          },
          "maxItems": 20,
          "description": "Only posts in any of these languages (ISO 639-1: en, es, de). A post whose language is unknown never passes."
        },
        "linkHosts": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1
          },
          "maxItems": 20,
          "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it (octolens.com also matches blog.octolens.com). A post with no links never passes."
        },
        "minQuotes": {
          "type": "integer",
          "minimum": 0,
          "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes."
        },
        "platforms": {
          "type": "array",
          "items": {
            "enum": [
              "bluesky",
              "hackernews",
              "github",
              "stackoverflow",
              "devto",
              "reddit",
              "x",
              "youtube",
              "news",
              "linkedin",
              "tiktok",
              "instagram",
              "appstore",
              "googleplay",
              "trustpilot",
              "googlemaps"
            ],
            "type": "string",
            "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place)."
          },
          "description": "Only posts from these platforms."
        },
        "keywordIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only these keywords."
        },
        "minReplies": {
          "type": "integer",
          "minimum": 0,
          "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes."
        },
        "minReposts": {
          "type": "integer",
          "minimum": 0,
          "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes."
        },
        "notRatings": {
          "type": "array",
          "items": {
            "type": "integer",
            "maximum": 5,
            "minimum": 1
          },
          "maxItems": 5,
          "description": "Never reviews with these star ratings (1 to 5): [5] keeps the five star reviews out. Posts that are not reviews still pass."
        },
        "sentiments": {
          "type": "array",
          "items": {
            "enum": [
              "positive",
              "neutral",
              "negative"
            ],
            "type": "string",
            "description": "Classifier sentiment."
          },
          "description": "Only these sentiments."
        },
        "minBookmarks": {
          "type": "integer",
          "minimum": 0,
          "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes."
        },
        "minFollowers": {
          "type": "integer",
          "minimum": 0,
          "description": "Only authors with at least this many followers. Unknown reach never passes."
        },
        "minRelevance": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "The rule's relevance floor. Absent, it sends relevant mentions only (scored 40 and up, the classifier's line); lower, down to 0, it also receives the matches the classifier scored as noise; higher, it hears less. Email channels keep the 40 line whatever the rule says. Unclassified mentions never pass."
        },
        "minConfidence": {
          "type": "number",
          "maximum": 1,
          "minimum": 0,
          "description": "Only mentions whose classifier confidence is at least this, 0 to 1. A mention without a confidence never passes."
        },
        "excludeAuthors": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1
          },
          "maxItems": 200,
          "description": "Never these authors: display names, handles or profile URLs."
        }
      },
      "additionalProperties": false
    },
    "enabled": {
      "type": "boolean",
      "default": true
    },
    "schedule": {
      "type": "object",
      "required": [
        "hour",
        "timezone"
      ],
      "properties": {
        "hour": {
          "type": "integer",
          "maximum": 23,
          "minimum": 0
        },
        "minute": {
          "type": "integer",
          "default": 0,
          "maximum": 59,
          "minimum": 0
        },
        "weekday": {
          "type": "integer",
          "maximum": 6,
          "minimum": 0,
          "description": "Weekly rules: the day it sends, 0 Sunday to 6 Saturday. Required for mode weekly; ignored on daily rules."
        },
        "timezone": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1
        },
        "skipEmpty": {
          "type": "boolean",
          "default": true
        }
      },
      "description": "Required for daily and weekly alerts (weekly ones also need schedule.weekday). Hourly alerts take none: they send every UTC hour, so a time of day and a zone are ignored and a weekday is refused.",
      "additionalProperties": false
    },
    "channelIds": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "default": [],
      "maxItems": 20,
      "description": "Channel ids from GET /v1/channels."
    }
  }
}