Jump to a popular page, or start typing.

    CONNECTIONS / Snowflake / Snowflake to LinkedIn Offline CAPI

    Snowflake's closed-deals table, credited back to LinkedIn.

    A LinkedIn-sourced deal often closes long after any pixel window has aged out. Signals reads the closed-deals table your warehouse already maintains and matches each row to the original ad by hashed business email instead.

    snowflake -> linkedin-offline-capi :: live

    1. ● snowflake → linkedin.offline_capi :: live
    2. > sync table CLOSED_DEALS_LEDGER rows=9,140
    3. hash sha256(business_email)
    4. route linkedin.offline_capi conversion=closed_won
    5. ✓ delivered · pipeline attributed

    WHAT THIS ENABLES

    Snowflake to LinkedIn Offline Conversions API

    Snowflake to LinkedIn Offline Conversions API reads a closed-deals table from your warehouse and posts the rows to LinkedIn's Conversions API, matched on hashed business email, so a B2B deal that takes months to close still attributes back to the campaign that started it.

    • Rows already sitting in the CLOSED_DEALS_LEDGER table, matched back to the LinkedIn ad that opened each deal no matter how many quarters passed in between.
    • LinkedIn optimization informed by the same closed-deals table your revenue reporting already reads.
    • The same warehouse read you already run for other ad platforms, extended to LinkedIn.
    WHAT FLOWS WHERE

    The click, the conversion, and the credit.

    The conversion happens off LinkedIn, away from any pixel. Here is how Snowflake closes the loop.

    LinkedIn credits the campaign that sourced the conversion conversion happens off-platform Ad click on LinkedIn Scheduled table sync recorded in Snowflake S Signals hash · dedupe Conversions API delivered · credited
    WHO THIS IS FOR

    Built for the teams that own the number.

    B2B teams whose closed-deals table already lives in Snowflake, built on a sales cycle measured in months.

    Teams already reading that table for other ad platforms who want LinkedIn included.

    HOW DATAHASH SETS IT UP

    From kickoff to verified events.

    1. Connect

      A read-only Snowflake role scoped to the closed-deals table and the business email column LinkedIn matches on.

    2. Map

      Whichever column marks a deal as closed, matched once to a LinkedIn offline conversion definition in the visual mapper.

    3. Deliver

      Delivery to LinkedIn's Conversions API, deduped against rows the sync has already sent.

    WHAT YOU GET

    What changes when the CSV goes away.

    Capability Manual CSV upload Datahash
    Reporting Offline sales sit in a separate export, reconciled by hand. Revenue counted in the same Offline CAPI reporting as web conversions.
    Deduplication A re-uploaded file risks counting the same conversion twice. Deduped delivery, so a resent record never counts as a second conversion.
    Match visibility Match quality is a guess until the numbers look off. Match rate reported per upload, tied to the source event set that produced it.
    Effort and latency An analyst exports and uploads on a manual cadence. Server-side and automatic the moment Snowflake records the event.
    ON THE WIRE

    What Offline CAPI actually receives.

    signals :: snowflake.linkedin-offline-capi :: wire

    1. ● signals :: event payload
    2. > POST /conversionEvents source=snowflake.CLOSED_DEALS_LEDGER
    3. conversion "urn:lla:llaPartnerConversion:623914"
    4. conversionHappenedAt 1784456700000
    5. user.userIds [{ idType: "SHA256_EMAIL", idValue: "b19e04…" }]
    6. ✓ accepted · conversionValue 52000 USD
    FAQ

    Asked on almost every call.

    Our closed-deals table only gets rows months after the original LinkedIn click. Does attribution still work?

    Yes. Matching happens on hashed business email rather than a click ID, so nothing depends on a cookie or pixel window still being alive by the time the deal lands in the table. A row that closes six months after the original ad click still credits that campaign, provided the business email on file matches what LinkedIn captured at the click.

    What other tables besides closed deals can feed LinkedIn's offline pipeline?

    Any table your warehouse maintains as a distinct milestone can be mapped, though a closed-deals table is the most common starting point because it is the outcome LinkedIn's bidding optimizes toward. Some B2B teams also read an earlier qualified-opportunity table to give LinkedIn a faster signal while the closed-deal feed builds volume.

    Does the closed-deals table need to exist specifically for this sync?

    No. Revenue reporting is usually already pulling from this same table, so Signals reads it exactly as it stands rather than asking for a purpose-built copy. A later change to the table's shape means updating the mapper once, and the next scheduled read carries on from there.

    NEXT STEP

    Snowflake to LinkedIn Offline CAPI, in production this week.