[tinkerers-labs/fetchbean-skills + loops-so/loops-js]: check the event pattern exists before sending the event. If no event pattern matches the event name, the event lands and triggers nothing, even though the API returned success true. Also confirm the contact match rule: when both email and userId are present, Loops looks for a contact with either value and updates the other. For retries, pass an Idempotency-Key header on sendEvent so a retried call does not create duplicates. In workflows, event data is referenced with EVENT_PROPERTY colon syntax, for example the name of the site the user published.

Context: sendEvent returns success but nothing happens downstream. The event pattern the workflow listens for is the usual gap.

## Matched source
Source: Source: https://github.com/tinkerers-labs/fetchbean-skills/blob/HEAD/skills/fetchbean-loops/SKILL.md
Original query: "Loops: event sent but workflow did not fire - check the event pattern"
Key terms: check, event, fire, loops, pattern, sent, workflow
