Slicegraph

← All posts

The Clay + public-registry playbook for Benelux outbound

· Slicegraph

Public-registry trigger data is outbound signal data sourced from official government registers (building-permit publications, public-procurement notices, e-invoicing network registrations) rather than scraped websites or resold intent feeds. It matters for sales because these events are legally required disclosures with dates attached: a company that filed a permit application yesterday, won a tender last week, or joined the Peppol network this morning has told you, on public record, what it is about to spend money on. Outbound converts when something just happened; registry data tells you what happened, to whom, today.

Why registries beat most Clay enrichment sources

Clay's strength is composition: you stack sources, and the table gets smarter than any single vendor. But most enrichment sources answer "who is this company?": firmographics, technographics, contact data. Very few answer "why now?", and the ones that try (job-change trackers, resold intent panels) tend to be noisy, laggy, or legally murky in the EU.

Registry data is the opposite on all three counts:

  • Timestamped. Every signal carries an occurred_at from the source publication. You are not inferring recency; the government printed the date.
  • Verifiable. Each signal links back to the source document. When a rep asks "where did this lead come from?", the answer is a URL to an official gazette, not a black-box score.
  • Identified. Peppol registrations resolve to exact KvK numbers (the Peppol 0106 scheme is the KvK number), so they join cleanly against any Dutch company table. Permit signals are entity-resolved by normalized name and city.
  • Compliant. Everything is company-level. No scraped profiles, no private individuals. The full sourcing and GDPR posture is documented at /sources.

That combination of fresh, provable, joinable and clean data is exactly what a Clay trigger column wants to be built on.

The three Benelux registry signals worth wiring up

Slicegraph ingests and cleans three registries daily. The dataset currently holds 9,817 signals across 523 regions, split into three families:

Permits (family=permit). Applications and grants of building and environmental permits, published by Dutch municipalities, provinces and water authorities via KOOP (officiëlebekendmakingen.nl). 4,220 permit signals across 341 municipalities right now. Amsterdam is the most active, followed by Den Haag, Amersfoort and Rotterdam. The sales logic: an application (permit_applied) predicts construction, fit-out and equipment spend weeks to months out; a grant (permit_granted) means the budget is confirmed. Buyers: construction suppliers, finishing and fit-out firms, equipment rental, insurers, kitchen and interior builders, installation companies. Browse a live slice at /signals/amsterdam/permits.

Procurement (family=procurement). Tender publications and awards from TenderNed, 565 signals across 246 regions. tender_published tells you who is buying; tender_awarded tells you who just won delivery obligations and will need subcontractors, staff and equipment.

E-invoicing (family=einvoicing). New registrations on the Peppol network, from the public Peppol Directory: 4,848 signals, of which 4,013 are Belgian and 835 Dutch. Each peppol_registered signal is a company actively changing its finance stack: the natural trigger for accounting software, accountants, and ERP or invoicing vendors. Live slices: /signals/be/peppol and /signals/nl/peppol.

The Clay setup, step by step

There are two ways to get this into Clay, and mature setups use both: pull for accounts you already track, push for net-new coverage.

Pattern 1: HTTP API enrichment column (pull)

Start from a Clay table of target accounts that has a KvK number column.

  1. Add an "HTTP API" enrichment column to the table.
  2. Method GET, endpoint https://slicegraph.com/api/v1/signals?kvk={{KvK column}}.
  3. Add the header Authorization: Bearer sg_live_... (your key comes with any plan; see /pricing).
  4. Map data[0].type and data[0].occurred_at into their own columns. The response is newest-first, so index 0 is always the latest signal for that company.
  5. Add a formula column that flags rows where occurred_at is within your freshness window, say 14 days.
  6. Trigger your sequences on that flag, not on the whole table.

You can tighten the query with the same filters the API supports everywhere: family, type, region (lowercase slugs like amsterdam, nl, be), since, limit and cursor for pagination. Full parameter reference at /docs, and the Slicegraph for Clay page shows both patterns side by side.

Pattern 2: webhook subscription → Clay table (push)

For market coverage beyond your existing account list, stream signals in as rows:

  1. In Clay, create a table with a webhook source and copy its URL.
  2. Register a subscription against it:
curl -X POST https://slicegraph.com/api/v1/subscriptions \
  -H "Authorization: Bearer sg_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "target_url": "https://api.clay.com/v3/sources/webhook/...",
    "filter": { "families": ["permit"], "regions": ["amsterdam", "rotterdam"] }
  }'
  1. Every new matching signal is POSTed to the table as it is ingested (daily batches). Deliveries carry an X-Slicegraph-Signature header, a hex HMAC-SHA256 of the raw body keyed with the subscription secret, and non-2xx responses are retried with backoff, so a flaky endpoint doesn't lose you leads.
  2. From each new row, run your normal Clay stack: find the domain, find the decision-maker, draft the opener referencing the actual event, push to your sequencer.

Timing the outreach per signal type

The registry tells you where in the buying cycle a company is, so match the play to the type. permit_applied is the earliest and softest signal: you are weeks to months ahead of the spend, so open a relationship, don't pitch a quote. permit_granted is confirmation. Budget approved, act within days. tender_awarded means the winner now has obligations and a deadline; sell them capacity. peppol_registered means the finance stack is in motion right now, and the switching window for adjacent tooling is open and short.

Try it against your ICP

Every plan starts with a free sample feed: tell us who you sell to and you get a real slice of the data for your segment. Plans run from Feed at €99/month to Growth at €149/month and Concierge from €750/month; details at /pricing. Watch the raw stream at /feed, or mail hello@slicegraph.com and we'll cut the first slice for you.

Explore the data

See the live feed, browse every region we track, or check pricing.

Related reading