Using the WaterFull API with Clay

Published on
November 18, 2025

What is Clay?

Clay is a go-to-market (GTM) data and automation platform aimed at sales, marketing and operations teams. In simpler terms: it helps you enrich, clean, and act on lead/account data in one place.

  • Access to many (100+ / 150+) external data sources for enrichment, intent signals, firmographics etc.
  • Built-in workflow and “automation” capabilities: you can take leads/contacts, enrich them, then trigger actions (update CRM, send outreach, segment).
  • Integrations with major CRMs and GTM stack tools (e.g., Salesforce, HubSpot, several databases/data providers) to plug into existing systems.
  • For GTM engineers and RevOps teams who want to use WaterFull within their Clay workflows, you can follow this guide or watch our tutorial to understand the fundamentals.

    The Guide


    1. Ensure you have set up a WaterFull account. You can do that here https://app.waterfull.ai/auth/signup

    2. Sign up for Clay

    3. Prepare your Clay table with three “Text” columns 

    • First name 
    • Lastname 
    • Company domain

    4. Then, in a fourth column, right-click the column header and select “Add Enrichment” (fig 1.)

    fig. 1

    5. In the right-hand box that appears (fig 2.), search HTTP and select “HTTP API”. Then select it and choose  “configure”

    fig. 2

    6. Next, under the box “Account” click the drop down menu and select “Add account” (fig. 3).

    fig. 3

    7. Then in the pop up, name your connection something memorable for WaterFull for example, “WaterFull API”. Then add the following API Request Headers as shown(fig 4.):

    • Authorization + [[YOUR_WATERFULL_API_KEY]]
    • Content-Type + application/json
    fig. 4

    Note: to find your API key, head across to your WaterFull dashboard, select API found on the yellow card.

    Then you’ll be able to generate and access your api key here.

    Paste that back in the Clay modal and save your connection.

    8. Next, you’ll need to set up the inputs like so, with method selected as “Post” and the endpoint as: https://api.waterfull.ai/v1/api/enrichment/find-email

    9. Now scroll down until you see "body" and copy and paste this JSON:

    {
      "name": "Clay Test",
      "webhookUrl": "",
      "data": {
        "first_name": "",
        "last_name": "",
        "domain": ""
      }
    }

    10. Next you need to map “first_name” “last_name” and “domain” to the columns you’ve previously made. So on those lines, click on the gaps in between the double quotes (“”) and press the ‘/’ key. Then select the matching columns.  

    Once that is done it should look like this: 

    11. Select these optional options.


    12.  Finally, click Save.

    13. Run a single test row with a firstname, lastname, and domain that you’re certain will return a positive result. You should see a 'Status Code: 200' message (if not, please revisit the steps to ensure you haven’t made a mistake). Check your WaterFull dashboard to see the progress of the test.

    14. Now, heading back to Clay create two more columns in your table :”JobId” & “Date”

    15. Starting with the JobId column, right-click the header and select “edit column”

    16. Then in the sidebar in the “reference data from a column…” box use “/” and then select

    17. The “HTTP API 3 items” options, “body” and choosing JobId

    18. Repeat the abovestep for the “date” column and the date tag can be found under headers.

    19. Following that, we need to create a new API call to fetch your results. So, create another column and select add enrichment 

    20. Now It’s the same as before; search and select a “HTTP API”

    Select configure 

    • Select configure 
    • Choose the same account as before 
    • Now under method choose “GET”
    • For “Endpoint” paste: “https://api.waterfull.ai/v1/api/enrichment-results/JOB_ID”

    Use “/” after https://api.waterfull.ai/v1/api/enrichment-results/ to map the column to the correct Job Id. 

    Select these options: 

    21. Then last paste the following into Run settings:

    !{{Date}} ? false : moment(). isSameOrAfter(moment(String({{Date}}), 'ddd, DD MMM YYYY HH: mm: ss [GMT]'). add(5, 'minutes'))

    22. You should see a “status code 200” message in the HTTP (2) column. 

    23.  Now onto the final parts of creating two new columns called Email and score 

    24. We just need to repeat the steps of 12 but now with the HTTP (2) call

    25. Right click the column header

    1. Select edit column 
    2. In the “reference data from column…” box use “/” and follow the drop downs from HTTP (2)> contacts>0>emails>0>email 
    3. Repeat the above step for the score column

    And there you have it! A fully working clay enrichment table using firstname/lastname/domain to pull accurate emails using WaterFull