Salutations in Clay: Herr/Frau, Madame, Mr/Ms in one column
One HTTP API column in Clay can turn a full-name column into a greeting your email template can use as it is: "Sehr geehrte Frau Müller," for a German prospect, "Madame," for a French one, "Geachte heer De Vries," for a Dutch one. The same response carries the gender, its probability and the name split into first and last name, so you do not need a formula column to build the greeting or a second step to split names.
Clay's built-in Predict Gender enrichment returns a gender label. That is enough for an English "Hi Anna", but German, French and Dutch outbound needs the courtesy title and the surname in the right form, and the label alone leaves that work to you. This guide sets up the column once; it then runs on every new row.
What you need
- A Clay table with a full-name column (or first and last name), and ideally a country column.
- A NameGender API key. A free account includes 100 lookups a day, enough to test the column on a sample.
1. Save the key as a header account
In the table, click Add enrichment, search for HTTP API, and switch from Generate to Configure.
Open Select header account, choose + Add account, and under API Request Headers add one pair:
| Key | Value |
|---|---|
Authorization |
Bearer YOUR_API_KEY |
Name it "NameGender" and save. Every HTTP API column in the workspace can now use the key without showing it in plain text to people who can see the table.
2. Configure the request
| Field | Value |
|---|---|
| Method | GET |
| Endpoint | https://namegender.com/api/v1/salutation |
Query parameter name |
/Full Name (your name column) |
Query parameter country |
/Country (optional, ISO code such as DE or FR; country names also work) |
| Header account | NameGender |
Type / in a value field to pick the column. If you have separate name columns, send first_name and last_name instead of name.
The country decides the language of the greeting and settles names that change sex across borders. Without it, the language falls back to English. If you have no country column but do have the prospect's language, send language=de (or fr, nl, es, it, pt, pl, tr, ja, en).
Turn on Remove empty fields from request, so rows without a country are sent without the parameter rather than with an empty one.
3. Test on one row
Click Test. For "Müller, Anna" with country DE, the response is:
{
"language": "de",
"form": "gendered",
"salutation": {
"formal": "Sehr geehrte Frau Müller,",
"informal": "Liebe Anna,",
"neutral": "Guten Tag Anna Müller,"
},
"gender": "female",
"probability": 95,
"first_name": "Anna",
"last_name": "Müller",
"name_type": "personal",
"country": "DE"
}
Note that "Müller, Anna" was written surname first; the split still puts Anna in first_name.
4. Pull the fields you will use into columns
From the column's result, add these as their own columns:
| Column | Path | Use it for |
|---|---|---|
| Salutation | salutation.formal |
The first line of a formal email |
| Greeting | salutation.informal |
A first-name greeting |
| Gender | gender |
Segmenting, or conditional copy |
| Probability | probability |
Deciding when not to trust the gender |
| First name | first_name |
Merge field |
| Last name | last_name |
Merge field |
Then reference the Salutation column in your sequence tool's template instead of a hard-coded "Dear".
What it returns for real names
These are live responses from the endpoint:
| Name | Country | salutation.formal |
gender |
probability |
|---|---|---|---|---|
| Marie Dupont | FR | Madame, | female | 99 |
| Müller, Anna | DE | Sehr geehrte Frau Müller, | female | 95 |
| Jan de Vries | NL | Geachte heer De Vries, | male | 95 |
| Andrea Rossi | IT | Gentile Sig. Rossi, | male | 95 |
| Andrea Rossi | US | Dear Ms. Rossi: | female | 99 |
| Andrea Rossi | FR | Madame, Monsieur, | male | 79 |
| Sales Team | DE | Sehr geehrte Damen und Herren, | — | — |
The Andrea Rossi rows are worth a second look. Andrea is mostly a man's name in Italy and mostly a woman's in the US, so the greeting follows the country; without the country column every row would get the same answer. In France the name is split closely enough (79% male) that the API does not guess and returns the greeting that fits anyone. And "Sales Team" is recognised as a role rather than a person, so it gets the impersonal German opening instead of a guessed "Herr".
When the gender is unsure
When the gender's probability is below 90%, or the name is unknown, form comes back as neutral and salutation.formal holds a greeting that works for anyone: "Guten Tag Kim Lee," in German, "Madame, Monsieur," in French, "Dear Kim Lee:" in American English. reason says why (below_min_probability). You do not have to filter those rows yourself: the formal salutation is always safe to send.
To move the cut-off, add min_probability as a query parameter, anywhere from 50 to 100. A higher value sends more rows to the neutral form; a lower one gives gendered greetings to more of them. For how often a sex-of-name greeting is wrong in each country, and what a 90% threshold fixes, see salutation errors by country.
Cost and limits
Each row costs one credit. The column respects the rate you set under Request limit and Duration (ms); 20 requests per 1000 ms is well inside the API's limit of 1,200 requests a minute per key. To process a large existing list in one go rather than row by row, upload it as a file and import the result back into Clay.
If you would rather not have names stored with request logs, switch off input storage on the key you use for Clay; see API keys that do not store names.
Every claim on this page is measurable against your own list. The free tier is enough to check it.
Related
-
How often \"Dear Mr\" reaches a woman: salutation errors from first names in 10 countries
Greeting people by the usual sex of their first name gets 1 in 47 Americans wrong but only 1 in 1,408 Poles. What a 90% threshold fixes, country by country.
-
Gender from a name in Python: gender-guesser vs data vs API
Three working ways to get gender from a first name in Python: gender-guesser, baby-name counts with pandas, and an API, measured on the same 4,610 names.
-
Gender inference from names in research: guidelines for accuracy and reporting
Inferring gender from names in a study: validate on your data, fix a threshold, report unknowns, check bias by script and country, and what to write in methods.