Docs
Forms API

Forms API

Manage external forms and form submissions with tracking capabilities.

The Forms API enables you to create form sessions, submit form data, and track conversions across multiple platforms including Facebook, TikTok, Snapchat, and Everflow.

Create Form Session

Create a new form session to start tracking form interactions.

Endpoint

POST /api/forms/session

Headers

X-API-Key: your_api_key_here
Content-Type: application/json

Request Body

{
  "formId": "550e8400-e29b-41d4-a716-446655440000",
  "formTitle": "Weight Management",
  "formDescription": "TrimRx Weight Management Form",
  "locale": "EN_US",
  "link": "https://example.com/form"
}

Parameters

FieldTypeRequiredDescription
formIdstring (UUID)NoExisting form ID to use
formTitlestringNoForm title (default: "Weight Management")
formDescriptionstringNoForm description (default: "TrimRx Weight Management Form")
localestringNoLanguage locale (default: "EN_US")
linkstringNoExternal form link

Success Response

{
  "success": true,
  "data": {
    "sessionId": "uuid-of-session",
    "formId": "uuid-of-form",
    "submissionId": "uuid-of-submission",
    "form": {
      "id": "uuid-of-form",
      "title": "Weight Management",
      "description": "TrimRx Weight Management Form",
      "locale": "EN_US",
      "createdAt": "2024-01-15T10:30:00.000Z"
    }
  }
}

Example Request

curl -X POST "https://dev.api.evoncrm.com/api/forms/session" \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "formTitle": "Lead Capture Form",
    "formDescription": "Marketing campaign lead form",
    "locale": "EN_US",
    "link": "https://mysite.com/contact"
  }'

Get Form Session

Retrieve details of an existing form session.

Endpoint

GET /api/forms/session/{sessionId}

Parameters

FieldTypeRequiredDescription
sessionIdstring (UUID)YesSession ID from URL path

Success Response

{
  "success": true,
  "data": {
    "id": "uuid-of-session",
    "formId": "uuid-of-form",
    "submissionId": "uuid-of-submission",
    "form": {
      "id": "uuid-of-form",
      "title": "Weight Management",
      "description": "TrimRx Weight Management Form",
      "locale": "EN_US"
    },
    "submission": {
      "id": "uuid-of-submission",
      "status": "PENDING",
      "createdAt": "2024-01-15T10:30:00.000Z"
    }
  }
}

Example Request

curl -X GET "https://dev.api.evoncrm.com/api/forms/session/550e8400-e29b-41d4-a716-446655440000" \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json"

Submit Form Data

Submit form data and trigger conversion tracking across platforms.

Endpoint

POST /api/forms/data

Headers

X-API-Key: your_api_key_here
Content-Type: application/json

Request Body

{
  "sessionId": "uuid-of-session",
  "data": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "phone": "+1-555-123-4567",
    "age": 35,
    "weight": "180 lbs",
    "goal": "Weight Loss"
  },
  "eventName": "form_submit",
  "conversionValue": 49.99,
  "currency": "USD",
  "userAgent": "Mozilla/5.0...",
  "ipAddress": "192.168.1.1",
  "fbp": "fb.1.1234567890.123456789",
  "fbc": "fb.1.1234567890.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890"
}

Parameters

FieldTypeRequiredDescription
sessionIdstring (UUID)YesSession ID from form creation
dataobjectYesForm field data
eventNamestringNoConversion event name (default: "form_submit")
conversionValuenumberNoValue of the conversion
currencystringNoCurrency code (default: "USD")
userAgentstringNoUser's browser user agent
ipAddressstringNoUser's IP address
fbpstringNoFacebook browser pixel
fbcstringNoFacebook click ID

Success Response

{
  "success": true,
  "data": {
    "submissionId": "uuid-of-submission",
    "status": "COMPLETED",
    "conversionResults": {
      "facebook": {
        "success": true,
        "eventId": "fb-event-123"
      },
      "tiktok": {
        "success": true,
        "eventId": "tt-event-456"
      },
      "snapchat": {
        "success": true,
        "eventId": "snap-event-789"
      },
      "everflow": {
        "success": true,
        "clickId": "ef-click-012"
      }
    }
  }
}

Example Request

curl -X POST "https://dev.api.evoncrm.com/api/forms/data" \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "sessionId": "550e8400-e29b-41d4-a716-446655440000",
    "data": {
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com",
      "phone": "+1-555-987-6543"
    },
    "eventName": "lead_generation",
    "conversionValue": 25.00,
    "currency": "USD"
  }'

Conversion Tracking

The Forms API automatically tracks conversions across multiple platforms:

Supported Platforms

  • Facebook Conversions API: Tracks events to Facebook Pixel
  • TikTok Conversions API: Sends conversion data to TikTok
  • Snapchat Conversions API: Reports conversions to Snapchat
  • Everflow: Tracks affiliate network conversions

Event Types

Common event names for conversion tracking:

  • form_submit - General form submission
  • lead_generation - Lead capture forms
  • sign_up - Registration forms
  • contact - Contact forms
  • quote_request - Quote/pricing requests

Error Responses

400 Bad Request

{
  "error": "Datos inválidos",
  "details": [
    {
      "code": "invalid_string",
      "message": "sessionId must be a valid UUID",
      "path": ["sessionId"]
    }
  ]
}

404 Not Found

{
  "error": "Session not found"
}

Use Cases

  • Lead Generation: Capture and track marketing leads
  • Contact Forms: Track contact form submissions
  • Multi-platform Tracking: Unified conversion tracking
  • A/B Testing: Compare form performance across campaigns
  • Affiliate Tracking: Monitor affiliate conversion performance

Best Practices

  1. Session Management: Create sessions before showing forms to users
  2. Data Validation: Validate form data before submission
  3. Conversion Values: Include meaningful conversion values for ROI tracking
  4. Error Handling: Handle conversion tracking failures gracefully
  5. Privacy Compliance: Ensure user consent for tracking pixels