Field Extractors (Field Entry Tools)
Overview
Field Extractors automatically capture information from conversations and save it to contact fields. As your AI agent chats with contacts, it "listens" for specific information you've configured and automatically updates the contact's record - no manual data entry required.
Key Benefit: Zero added latency - extraction happens in parallel with the conversation. The contact never experiences any delay.
What Field Extractors Do
Example Scenario:
AI Agent: "Can you tell me about the project you have in mind?" Contact: "I need a new HVAC system installed. My address is 123 Main St, Austin, TX 78701"
With Field Extractors configured:
service_descriptionfield automatically updated to: "new HVAC system installed"street_addressfield automatically updated to: "123 Main St"cityfield automatically updated to: "Austin"statefield automatically updated to: "TX"zip_codefield automatically updated to: "78701"
All of this happens automatically while the AI continues the conversation.
When to Use Field Extractors
Definitely Use When:
- Your AI agent asks questions to gather information
- You want to avoid manual data entry
- Information is critical for your workflow (addresses for service calls, project details, etc.)
- You need structured data for reporting or integrations
Optionally Use When:
- Contacts may volunteer information without being asked
- You want to capture any mention of specific details
- Building comprehensive contact profiles over time
Examples:
- ✅ AI asks for address → Extract street_address, city, state, zip_code
- ✅ AI asks about project → Extract service_description
- ✅ AI gathers details → Extract any relevant custom fields
- ✅ Contact mentions their business → Extract business_name
- 🤔 Contact might mention their website → Extract website (optional)
Accessing Field Extractors
For Any Agent:
- Open the AI Agent Editor Modal
- Go to the "Field Entry" tab
- Add field extractors
Creating Field Extractors
Using Ava (Edit with AI)
Step 1: Click "Edit with AI" button
Step 2: Tell Ava what information to extract, and whether or not you want the agent to ask for that info proactively or you just want the tool in the background "in-case".
Example Requests:
- "Extract the contact's address, city, state, and zip code from conversations"
- "Save the service description when contacts describe their project"
- "Capture their email address if they mention it"
Step 3: Review what Ava created
Step 4: Click "Apply"
Step 5: Save the agent
Manual Creation
Step 1: In the Field Entry tab, click "Add Field Extractor"
Step 2: Select the field to extract to:
- Choose from standard contact fields
- Or select custom fields you've created
Step 3: Describe what to extract:
- Be clear and specific
- Always including an example is good practice.
- Example: "the user's street address. Ex: '123 Main St'"
Step 4: Configure allow overwrite (optional, generally what you want)
- allowing overwrite means the agent can record new data to a field with an existing value
- if this is turned off, when the tool executes, if the specified field already has something in it, the new value will not be written to it
Step 5: Click "Create Extractor"
Configuring Field Extractors
Field Selection (Required)
Choose which contact field the extracted data should be saved to.
Standard Fields:
- first_name, last_name, full_name
- email, phone
- business_name, website
- street_address, city, state, zip_code, country
- service_description
Custom Fields:
- Any active custom fields you've created
- Appears under "Custom Fields" group
What to Extract (Required)
Describe what information the AI should look for.
Be Descriptive:
- ✅ "the user's street address. Ex: '123 Main St'"
- ✅ "the user's description of the service they need. Ex: 'My water heater needs to be replaced'"
- ✅ "the city where the user lives or where the service is needed. Ex: 'Austin'"
- ❌ "address" (too vague)
- ❌ "service" (too vague)
Including Examples Helps:
- Shows AI the format you expect
- Improves extraction accuracy
- Example: "the user's phone number. Ex: '555-123-4567'"
- You can be specific about the value/format you want. Example: Field: pricing_ok Description: "the user's indication of whether or not they are ok with pricing. Fill only with either "Yes" or "No" exactly.
Allow Overwrite
Enabled (Default):
- New extracted data overwrites existing field value
- Use when you want the most recent information
- Recommended for most fields
Disabled:
- Existing values are preserved
- New data only saved if field is empty
- Use for fields that shouldn't change
Common Field Extractor Setups
Example 1: Basic Address Collection
Service Description:
- Field:
service_description - Description: "the user's description of the service they are interested in or the project they have in mind. Ex: 'I want an estimate on synthetic turf for my backyard and a putting green on the side' "
- Allow Overwrite: ✅
Street Address:
- Field:
street_address - Description: "the user's street address. Ex: '123 Main St'"
- Allow Overwrite: ✅
City:
- Field:
city - Description: "the city where the user lives or where the service is needed. Ex: 'Westchester' "
- Allow Overwrite: ✅
State:
- Field:
state - Description: "the state from the user's address. Ex: 'TX' Fill only with a standard two letter abbreviation for the state"
- Allow Overwrite: ✅
Zip Code:
- Field:
zip_code - Description: "the user's 5-digit zip code. Ex: '78701'"
- Allow Overwrite: ✅
Example 2: Business Information
Business Name:
- Field:
business_name - Description: "the name of the user's company or business. Ex: 'ABC Software' "
- Allow Overwrite: ✅
Website:
- Field:
website - Description: "the user's business website URL. Ex: 'www.example.com' or 'https://example.com'"
- Allow Overwrite: ✅
Example 3: Custom Field for Project Timeline
Custom Field: "project_timeline"
- Field:
project_timeline(custom field you created) - Description: "when the user wants to start the project or their timeline. Ex: 'next week' "
- Allow Overwrite: ✅
Example 4: Equipment Details
Custom Field: "current_equipment"
- Field:
current_equipment(custom field) - Description: "details about the user's current equipment or system. Ex: 'Carrier AC unit, 10 years old' "
- Allow Overwrite: ✅
How Field Extractors Work
Extraction Process
- Contact sends message
- AI generates response
- In parallel: Field extractors scan the conversation
- AI looks for information matching your descriptions
- When found, data is extracted
- Contact field is updated (or not, if allow_overwrite is disabled and field has value)
- Contact receives AI response (no delay)
Performance:
- Zero added latency to conversation
- Runs in parallel with response generation
- Contact doesn't notice anything
When Extraction Happens
When using Field extractors, your AI evaluates:
- The current message from contact
- Recent conversation history
This means:
- Can extract from any message, not just responses to specific questions
- Works even if contact volunteers information without being asked
- Can improve the input for a certain field as the user provides more info
Overwrite Behavior
With Allow Overwrite Enabled:
Contact record: street_address = "123 Main St"
Contact says: "Actually, my address is 456 Oak Ave"
Field extractor updates: street_address = "456 Oak Ave"
With Allow Overwrite Disabled:
Contact record: street_address = "123 Main St"
Contact says: "Actually, my address is 456 Oak Ave"
Field extractor skips: street_address stays "123 Main St"
Best Practices
Extract What You Actually Need
Don't extract every possible field:
- ✅ Fields critical to your workflow
- ✅ Information AI is actively asking for
- ✅ Data needed for booking, CRM sync, or service delivery
- ✅ Info you expect some users to provide based on the subject of the conversation the agent is designed for, but aren't explicitly asking for
- ❌ Every possible field "just in case"
Match Extractors to Agent Instructions
If your agent asks: "Can you tell me about the project?"
Then extract:
- service_description (or custom field you create, project_description)
If your agent asks: "What's your address?"
Then extract:
- street_address
- city
- state
- zip_code
Use Descriptive "What to Extract" Text
The AI uses your description to understand what to look for:
- Be specific
- Include examples when helpful
- Describe the format you expect
Enable Allow Overwrite (Usually)
Most fields should allow overwriting:
- Ensures you have the most current information
- Corrects mistakes or changes
- Updates as contact provides more details
Disable Allow Overwrite for:
- Historical data you want to preserve
- Fields that should never change once set
Use Custom Fields for Business-Specific Data
Create custom fields for information unique to your business:
- Equipment types
- Service preferences
- Project timelines
- Budget ranges
- Property details
- etc.
Then extract to those custom fields.
Combine with Conditional Tools
Example Setup:
Field Extractor:
- Field:
zip_code - Description: "the user's 5-digit zip code"
Conditional Tool:
- Trigger: "user provides or confirms zip code"
- Action: Zip Code Territory Check
This way your agent extracts the zip code AND validates territory.
Monitoring Field Extractors
AI Text Agent Logs
Access: AI Agents page > AI Text Logs tab
What You See:
- Which field extractors fired
- What values were extracted
- Whether fields were updated
- Any extraction errors
Use For:
- Verifying extraction accuracy
- Identifying missed extractions
- Debugging issues
- Optimizing descriptions
Reviewing Contact Records
After conversations, check contact records:
- Verify fields were populated correctly
- Check data quality
- Ensure formats are as expected
- Adjust extractor descriptions if needed
Troubleshooting
Problem: Field extractor not firing
Solution:
- Check that extractor is enabled (toggle)
- Make description more specific
- Ensure contact actually provided that information
- Review AI logs to see if AI detected the information
- Test with agent test feature
Problem: Wrong data being extracted
Solution:
- Review and refine the "What to Extract" description
- Add examples showing expected format
- Be more specific about what to capture
- Test with different conversation scenarios
Problem: Field not updating even though extractor fired
Solution:
- Check if "Allow Overwrite" is disabled and field already has value
- Verify field name is correct
- Check contact record for existing value
- Review logs for extraction errors
Problem: Extracting to wrong field
Solution:
- Verify field selection in extractor configuration
- Check for duplicate extractors
- Ensure field name matches what you intended
- Edit extractor to select correct field
Problem: Missing extractions in conversation
Solution:
- Contact may have provided information in unclear way
- Make description less specific/more flexible
- Add alternative phrasings to description
- Consider if information was actually mentioned
Related Features
- AI Text Agents - Configure agents with field extractors
- Conditional Tools - Take actions based on conversation content
- Contacts - View extracted data in contact records