X lead generation form fields: work email, job title, company
X's lead generation docs list contact and user-information fields, including WORK_EMAIL, JOB_TITLE and COMPANY_NAME. Pick fields to match each ad variant.

X's lead generation documentation lists contact fields (EMAIL, PHONE_NUMBER, STREET_ADDRESS, CITY, STATE, COUNTRY, ZIP_CODE) and user-information fields (FULL_NAME, FIRST_NAME, LAST_NAME, DATE_OF_BIRTH, COMPANY_NAME, JOB_TITLE, WORK_EMAIL, WORK_PHONE_NUMBER, GENDER, HANDLE). For a B2B offer, WORK_EMAIL, COMPANY_NAME and JOB_TITLE are the natural trio, and you can hold a field list per creative variant in your own bulk run plan.
Fields by group
| Group | Field types |
|---|---|
| Contact | EMAIL, PHONE_NUMBER, STREET_ADDRESS, CITY, STATE, COUNTRY, ZIP_CODE |
| User information | FULL_NAME, FIRST_NAME, LAST_NAME, DATE_OF_BIRTH, COMPANY_NAME, JOB_TITLE, WORK_EMAIL, WORK_PHONE_NUMBER, GENDER, HANDLE |
Keep a field plan next to the creative plan
A small map keeps each variant paired with the fields its form asks for. The names below are the documented field types.
import json
VALID = {"EMAIL", "PHONE_NUMBER", "STREET_ADDRESS", "CITY", "STATE", "COUNTRY", "ZIP_CODE",
"FULL_NAME", "FIRST_NAME", "LAST_NAME", "DATE_OF_BIRTH", "COMPANY_NAME",
"JOB_TITLE", "WORK_EMAIL", "WORK_PHONE_NUMBER", "GENDER", "HANDLE"}
plan = {"hook-a": ["WORK_EMAIL", "COMPANY_NAME", "JOB_TITLE"], "hook-b": ["EMAIL", "FULL_NAME"]}
for variant, fields in plan.items():
bad = [f for f in fields if f not in VALID]
print(variant, "ok" if not bad else f"unknown: {bad}")
print(json.dumps(plan))Ask for less
Every extra field is another reason to leave the form; start with the fewest your sales team can act on.
Sources
Related posts
More in Use cases
- X post media mix: 4 photos, 1 GIF or 1 video, and 0.5 s video minimum
An X post can carry up to 4 photos, or 1 animated GIF, or 1 video, and video must be at least 0.5 seconds. Pick the right Sume export for each case.
- Yoga studio class promo clip: Kling 3 for 8 seconds, audio or silent
An 8-second class promo clip with kling-3 on Sume costs $1.12 silent and $1.68 with audio; vertical 9:16 at 720p or 1080p is the same rate.
- YouTube can add the AI label itself, even if you skip the toggle
YouTube may auto-apply AI labels for its own GenAI tools, C2PA metadata, or content its systems detect. Sume docs promise no C2PA, so disclose yourself.
- YouTube AI disclosure won't limit reach or monetization
YouTube says disclosing AI content won't limit a video's audience or eligibility to earn money. Penalties are for repeated non-disclosure. Tell clients.
Written by Sume