Features

Contact Management

Automatically build and enrich contact profiles from form submissions. Track all interactions, merge duplicate contacts, and gain a complete view of every respondent.

What is Contact Management?

Contact Management transforms your form responses into rich contact profiles. Instead of just collecting isolated submissions, WorkForm builds a comprehensive contact database that tracks every interaction, enriches profiles over time, and gives you a complete picture of each respondent.

Example Workflow:

  • ✅ User submits a lead form → Contact profile created
  • ✅ Same user submits a support request → Profile updated with new info
  • ✅ User books a demo → Scheduling details added to profile
  • ✅ View all interactions in one unified contact profile

Key Features

Automatic Contact Matching

Intelligently identify returning users by email or IP address to prevent duplicates and maintain clean contact records.

Custom Field Mapping

Map any form field to contact properties. Extract names, emails, phone numbers, company details, and custom fields automatically.

Response History

View all form submissions from each contact in one place. See the complete interaction timeline with expandable response details.

Location & Device Tracking

Automatically capture IP addresses, browser details, and device information for better context and fraud prevention.

Enable Contact Matching

1

Open Form Settings

Go to your form editor and click the "Settings" tab in the right sidebar.

2

Enable Contact Matching

Toggle on "Enable Contact Matching" to activate the feature for this form.

Settings → Contact Matching → Enable Contact Matching
3

Configure Field Mappings

Map your form fields to contact properties (email, name, phone, etc.). Click "Add Field Mapping" to create custom mappings.

4

Choose Matching Strategy

Configure how WorkForm identifies returning contacts using email matching, IP matching, or both.

Contact Matching Strategies

Email Matching (Primary)

Email matching is the primary and most reliable method for identifying contacts. When enabled, WorkForm searches for existing contacts by email address.

How it works

If the email from the form matches an existing contact, that profile is updated. Otherwise, a new contact is created.

Exclusive matching

Email matching takes priority. If an email is provided, IP matching is skipped to ensure different emails always create separate contacts.

Best for

Lead forms, contact forms, user registrations, surveys with known respondents

IP Address Matching (Secondary)

IP matching helps identify anonymous or returning visitors who don't provide an email. This is particularly useful for tracking quiz takers, survey respondents, or multi-part forms.

How it works

Only used when no email is provided. WorkForm checks if the IP address has submitted before and updates the existing anonymous contact.

Limitations

IP addresses can change or be shared (offices, VPNs, mobile networks). Use this for approximate tracking, not precise identification.

Best for

Anonymous surveys, quizzes, calculators, multi-step forms before email collection

Privacy Tip

When using IP matching, ensure you comply with privacy regulations (GDPR, CCPA). Add a privacy policy link to your forms and be transparent about data collection.

Field Mapping

Field mapping connects your form questions to contact properties. This tells WorkForm which form responses should update which contact fields.

Standard Contact Fields

email
Primary Identifier

Email address used for contact matching and communication

firstName
Text

Contact's first name or given name

lastName
Text

Contact's last name or surname

phone
Phone Number

Primary phone number with country code

company
Text

Company or organization name

jobTitle
Text

Professional role or position

website
URL

Company or personal website URL

address
Text

Full street address

city / state / zipCode / country
Text

Location details for contact segmentation

Custom Fields

Beyond standard fields, you can map form questions to custom properties unique to your needs.

Example Custom Mappings:

  • "Annual Revenue" → customFields.annualRevenue
  • "Industry" → customFields.industry
  • "Preferred Contact Method" → customFields.contactMethod
  • "Lead Score" → customFields.leadScore

Update Existing Contacts

Control how WorkForm handles data when a contact submits multiple forms over time.

Update Existing Contacts: ON

When enabled, new form submissions will update all fields with new values. This keeps contact data fresh and ensures you always have the latest information.

Best for: Lead forms, profile updates, customer information
Example: User updates phone number → Contact phone is updated with new value
Update Existing Contacts: OFF

When disabled, only empty fields will be filled. Existing data is preserved, preventing accidental overwrites from partial forms or progressive profiling.

Best for: Progressive profiling, multi-step onboarding, data enrichment
Example: User fills partial form → Only missing fields get populated

Viewing Contact Profiles

Access your contact database from the main dashboard to view profiles and response history.

1

Navigate to Contacts

Click "Contacts" in the main navigation menu to open your contact database.

2

Browse Contact List

See all contacts with key information: name, email, company, location, and number of form submissions. Use search and filters to find specific contacts.

3

View Contact Details

Click any contact to see their complete profile including:

  • Contact information (name, email, phone, location)
  • Device & browser information
  • Custom fields unique to this contact
  • IP address history with location data
4

View Response History

Scroll down to see all forms submitted by this contact. Each form is displayed in an expandable accordion showing:

  • Form name and submission date
  • Response status (completed/incomplete)
  • Submission time and response count
  • Click to expand and view full response answers

Viewing Response Details

Click on any form submission in a contact's history to view complete details in a modal window.

Response Modal Includes:

Submission Metadata

Response ID, submission time, completion status, and device information

All Questions & Answers

Complete list of form questions with formatted answers. HTML from the editor is automatically stripped for clean display.

Scheduling Details (if applicable)

For forms with Cal.com or Calendly integrations, see booking details including:

  • • Scheduled date and time with timezone
  • • Booking status and cancellation info
  • • Video call links (Zoom, Google Meet, etc.)
  • • Direct links to view booking on Cal.com/Calendly

Common Use Cases

Lead Generation & Sales

Build comprehensive lead profiles from multiple touchpoints. Track demo requests, white paper downloads, and contact form submissions all in one contact record.

Setup: Enable email matching + map company, job title, and lead source fields
Customer Support

Track all support requests from each customer. See ticket history, common issues, and customer information in one unified view.

Setup: Enable email matching + map priority, issue type, and product fields
Event Registration

Track attendees across multiple events. See which events each person registered for, dietary preferences, and networking interests.

Setup: Enable email matching + update existing contacts ON
Progressive Profiling

Build complete profiles gradually over time. First form collects basic info, subsequent forms ask for additional details without re-asking known information.

Setup: Enable email matching + update existing contacts OFF
Anonymous User Tracking

Track quiz takers, calculator users, or survey respondents who don't provide email. If they later provide email, merge their anonymous activity into their contact profile.

Setup: Enable IP matching + email matching as primary

Best Practices

✓ Always map email fields

Email is the most reliable identifier. Make sure your email form field is mapped to the contact email property for accurate matching.

✓ Use consistent field names

If you have multiple forms, use the same question IDs or labels for common fields (email, name, phone) to ensure consistent mapping.

✓ Review IP matching limitations

IP addresses are approximate. Don't rely solely on IP matching for critical data or where accuracy is essential. Use it as a fallback for anonymous tracking only.

✓ Test your configuration

Submit test responses with the same email to verify contact matching and field updates work as expected before launching your form.

⚠ Be mindful of data privacy

Always include a privacy policy and be transparent about how you collect and use contact data. Ensure compliance with GDPR, CCPA, and other applicable regulations.

⚠ Don't over-collect data

Only map fields that provide value. Collecting unnecessary information can reduce conversion rates and create privacy concerns.

Technical Details

Data Storage

Contacts are stored in MongoDB with the following schema:

{
  workspace: ObjectId,
  email: String (unique per workspace),
  firstName: String,
  lastName: String,
  phone: String,
  company: String,
  jobTitle: String,
  website: String,
  address: String,
  city: String,
  state: String,
  zipCode: String,
  country: String,
  ipAddresses: [{ ip: String, location: Object, timestamp: Date }],
  devices: [{ browser: String, os: String, device: String }],
  customFields: Object,
  tags: [String],
  createdAt: Date,
  updatedAt: Date
}

Matching Logic

Step 1: Email Check

If email provided, search for existing contact by email in workspace. If found, update and skip IP check. If not found, continue to step 2.

Step 2: IP Check (if no email)

If IP matching enabled AND no email provided, search by IP address. If found, update anonymous contact. If not found, continue to step 3.

Step 3: Create New Contact

If no existing contact found, create new contact with provided data and captured metadata (IP, device info, timestamp).

Automatic Data Capture

Beyond mapped fields, WorkForm automatically captures:

  • IP Address & Location: Geo-location data including country, region, city, and timezone
  • Device Information: Browser name/version, operating system, device type (mobile/desktop/tablet)
  • Timestamps: First seen, last updated, and submission times for activity tracking

Frequently Asked Questions

What happens if someone uses a different email?

A new contact is created. Different emails are treated as different people to prevent data mixing. Even if IP matching is enabled, email takes priority.

Can I merge duplicate contacts?

Contact merging is not currently available in the UI, but you can use the GraphQL API to programmatically merge contact records if needed.

How do I export contact data?

Use the Export button in the Contacts page to download your contact database as CSV. You can also use the GraphQL API for programmatic access.

Are incomplete form submissions linked to contacts?

Yes! Both completed and incomplete responses are linked to contacts. This helps you identify drop-off points and follow up with incomplete submissions.

Can I disable contact matching for specific forms?

Yes, contact matching is configured per-form. You can enable it for lead forms and disable it for anonymous surveys or feedback forms.

How accurate is IP-based location data?

IP geolocation is generally accurate at the country and city level, but can be affected by VPNs, proxies, and mobile networks. Use it for general insights, not precise targeting.

Can I tag contacts or add notes?

Contact tags and notes are available via the GraphQL API. UI support for manual tagging and notes is planned for a future update.

Is contact data shared across workspaces?

No, contacts are workspace-specific. The same email in different workspaces creates separate contact records.

Related Documentation

Send contact data to your CRM, email platform, or database via webhooks and API

Programmatically create, update, and query contacts using the GraphQL API

Analyze contact engagement, form completion rates, and submission patterns

Need Help?

Having trouble setting up contact matching? Our support team is here to help.