Monitor workflow · Supply-chain risk

Semiconductor supplier disruption

Tell procurement when one of twelve reviewed supplier entities appears in new coverage about a production or logistics disruption.

Entity matching is coverage, not material or actor involvement. The notification is an intake signal; QU-backed follow-up determines whether an actual supplier dependency is materially affected. Replace this illustrative list with suppliers that share one question, cadence, recipient, and response process. volume_spike is deferred; this workflow uses new_matches only. A Monitor reads one lane: this one reads Stories, because the objective is coverage intake and not a coded incident. Add a separate Events Monitor if procurement also wants the incident feed.

GET /api/v2/search?q=TSMC&type=organization&limit=10
# Present candidates and replace $tsmc only after selection.

GET /api/v2/search?q=Samsung%20Electronics&type=organization&limit=10
# Present candidates and replace $samsung_electronics only after selection.

GET /api/v2/search?q=SK%20Hynix&type=organization&limit=10
# Present candidates and replace $sk_hynix only after selection.

GET /api/v2/search?q=Micron%20Technology&type=organization&limit=10
# Present candidates and replace $micron only after selection.

GET /api/v2/search?q=ASML&type=organization&limit=10
# Present candidates and replace $asml only after selection.

GET /api/v2/search?q=Applied%20Materials&type=organization&limit=10
# Present candidates and replace $applied_materials only after selection.

GET /api/v2/search?q=Lam%20Research&type=organization&limit=10
# Present candidates and replace $lam_research only after selection.

GET /api/v2/search?q=Tokyo%20Electron&type=organization&limit=10
# Present candidates and replace $tokyo_electron only after selection.

GET /api/v2/search?q=KLA%20Corporation&type=organization&limit=10
# Present candidates and replace $kla only after selection.

GET /api/v2/search?q=Broadcom&type=organization&limit=10
# Present candidates and replace $broadcom only after selection.

GET /api/v2/search?q=Qualcomm&type=organization&limit=10
# Present candidates and replace $qualcomm only after selection.

GET /api/v2/search?q=MediaTek&type=organization&limit=10
# Present candidates and replace $mediatek only after selection.

POST /api/v2/monitors  # specification 1 of 1
{
  "name": "Critical semiconductor supplier disruption",
  "description": "Coverage intake for one reviewed supplier list; investigate material involvement after a match.",
  "subject": {
    "type": "entity",
    "entity_ids": [
      "$tsmc",
      "$samsung_electronics",
      "$sk_hynix",
      "$micron",
      "$asml",
      "$applied_materials",
      "$lam_research",
      "$tokyo_electron",
      "$kla",
      "$broadcom",
      "$qualcomm",
      "$mediatek"
    ],
    "match": "coverage"
  },
  "criteria": {
    "data": "stories",
    "search": "semiconductor production disruption, factory outage, logistics interruption",
    "countries": [],
    "family_filters": {
      "story": {
        "categories": [
          "cameoplus_economic",
          "cameoplus_infrastructure"
        ]
      }
    },
    "fatalities_only": false
  },
  "trigger": {
    "type": "new_matches"
  },
  "schedule": {
    "cadence": "hourly",
    "timezone": "UTC",
    "daily_hour": 8
  },
  "delivery": {
    "email": true
  }
}

Expected notification result

Email summarizes the same run. Signed webhooks use this typed Constitution fixture; total, included, and truncation are explicit.

[
  {
    "name": "story",
    "payload": {
      "schema_version": "1",
      "id": "evt_demo_story_001",
      "type": "monitor.triggered",
      "created_at": "2026-08-24T12:00:00.000Z",
      "monitor": {
        "id": "mon_demo_company",
        "name": "Company coverage watch"
      },
      "run": {
        "id": "run_demo_story_001",
        "scheduled_for": "2026-08-24T12:00:00.000Z",
        "window_start": "2026-08-24T11:00:00.000Z",
        "window_end": "2026-08-24T12:00:00.000Z",
        "cadence": "hourly"
      },
      "trigger": {
        "type": "new_matches",
        "total_matches": 1,
        "included_matches": 1,
        "truncated": false,
        "next_cursor": "eyJvIjowfQ"
      },
      "data": {
        "matches": [
          {
            "kind": "story",
            "item": {
              "id": "story-demo-002",
              "url": "https://example.com/stories/story-demo-002",
              "title": "Manufacturer announces a new regional facility",
              "story_date": "2026-08-24",
              "updated_at": "2026-08-24T11:05:00.000Z",
              "processed_at": "2026-08-24T11:05:00.000Z",
              "category": "Economy and business",
              "category_code": "economy_business",
              "subcategory": null,
              "geo": {
                "country": "Germany",
                "region": "Western Europe",
                "continent": "Europe",
                "admin1": "Saxony",
                "location": "Dresden",
                "latitude": 51.0504,
                "longitude": 13.7373,
                "geo_precision": 1,
                "geo_precision_label": "city"
              },
              "geo_provenance": null,
              "geo_context": {
                "location_country": "Germany",
                "actor_origin_countries": [
                  "Germany"
                ]
              },
              "metrics": {
                "significance": 0.57,
                "article_count": 6,
                "linked_event_count": 0,
                "max_linked_event_significance": 0,
                "civilian_targeting_event_count": 0
              },
              "has_events": false,
              "has_fatalities": null,
              "has_civilian_targeting": false,
              "fatalities": null,
              "linked_events": [],
              "entity_refs": [
                {
                  "id": "e_demo_manufacturer",
                  "name": "Example Manufacturer"
                }
              ],
              "matched_categories": [],
              "top_articles": [
                {
                  "url": "https://example.com/news/demo-story-002",
                  "title": "Manufacturer plans regional facility",
                  "domain": "example.com",
                  "rank": 1
                }
              ],
              "language_breakdown": [
                {
                  "language": "English",
                  "count": 4
                },
                {
                  "language": "German",
                  "count": 2
                }
              ],
              "top_language": "English",
              "search_score": null
            }
          }
        ]
      },
      "links": {
        "monitor": "https://gdeltcloud.com/monitors/mon_demo_company",
        "run": "https://gdeltcloud.com/monitors/mon_demo_company/runs/run_demo_story_001",
        "matches": "https://gdeltcloud.com/api/v2/monitors/mon_demo_company/runs/run_demo_story_001/matches"
      }
    }
  },
  {
    "name": "truncated",
    "payload": {
      "schema_version": "1",
      "id": "evt_demo_truncated_001",
      "type": "monitor.triggered",
      "created_at": "2026-08-24T12:00:00.000Z",
      "monitor": {
        "id": "mon_demo_high_volume",
        "name": "High-volume country watch"
      },
      "run": {
        "id": "run_demo_truncated_001",
        "scheduled_for": "2026-08-24T12:00:00.000Z",
        "window_start": "2026-08-24T11:00:00.000Z",
        "window_end": "2026-08-24T12:00:00.000Z",
        "cadence": "hourly"
      },
      "trigger": {
        "type": "new_matches",
        "total_matches": 37,
        "included_matches": 1,
        "truncated": true,
        "next_cursor": "eyJvIjowfQ"
      },
      "data": {
        "matches": [
          {
            "kind": "story",
            "item": {
              "id": "story-demo-truncated",
              "url": null,
              "title": "Representative result from a larger run",
              "story_date": "2026-08-24",
              "updated_at": null,
              "processed_at": null,
              "category": null,
              "category_code": null,
              "subcategory": null,
              "geo": {
                "country": "Brazil",
                "region": "South America",
                "continent": "South America",
                "admin1": null,
                "location": null,
                "latitude": null,
                "longitude": null,
                "geo_precision": null,
                "geo_precision_label": null
              },
              "geo_provenance": null,
              "geo_context": {
                "location_country": "Brazil",
                "actor_origin_countries": []
              },
              "metrics": {
                "significance": 0.42,
                "article_count": 2,
                "linked_event_count": 0,
                "max_linked_event_significance": 0,
                "civilian_targeting_event_count": 0
              },
              "has_events": false,
              "has_fatalities": null,
              "has_civilian_targeting": false,
              "fatalities": null,
              "linked_events": [],
              "entity_refs": [],
              "matched_categories": [],
              "top_articles": [],
              "language_breakdown": [],
              "top_language": null,
              "search_score": null
            }
          }
        ]
      },
      "links": {
        "monitor": "https://gdeltcloud.com/monitors/mon_demo_high_volume",
        "run": "https://gdeltcloud.com/monitors/mon_demo_high_volume/runs/run_demo_truncated_001",
        "matches": "https://gdeltcloud.com/api/v2/monitors/mon_demo_high_volume/runs/run_demo_truncated_001/matches"
      }
    }
  }
]

The stored Monitor specification

All three views use this same public API object.

{
  "name": "Critical semiconductor supplier disruption",
  "description": "Coverage intake for one reviewed supplier list; investigate material involvement after a match.",
  "subject": {
    "type": "entity",
    "entity_ids": [
      "$tsmc",
      "$samsung_electronics",
      "$sk_hynix",
      "$micron",
      "$asml",
      "$applied_materials",
      "$lam_research",
      "$tokyo_electron",
      "$kla",
      "$broadcom",
      "$qualcomm",
      "$mediatek"
    ],
    "match": "coverage"
  },
  "criteria": {
    "data": "stories",
    "search": "semiconductor production disruption, factory outage, logistics interruption",
    "countries": [],
    "family_filters": {
      "story": {
        "categories": [
          "cameoplus_economic",
          "cameoplus_infrastructure"
        ]
      }
    },
    "fatalities_only": false
  },
  "trigger": {
    "type": "new_matches"
  },
  "schedule": {
    "cadence": "hourly",
    "timezone": "UTC",
    "daily_hour": 8
  },
  "delivery": {
    "email": true
  }
}

After the notification

Scheduled checks cost 0 QU. Investigation and application calls use QU.

GET the run replay_requests for complete /api/v2/stories results.

Retrieve canonical Story evidence, its linked Events, and source URLs.

Use /api/v2/facilities, entity ownership/relations, filings, screening, government, and maritime endpoints only where the evidence calls for them.