The developer guide for the Universal Contact Form Ecosystem
🚀 Open Live ShowcaseThe Universal Contact Form is built using the Shadow DOM for 100% style isolation, ensuring it never breaks your site's existing CSS.
Real-time client-side validation for emails, phones, and custom regex without external libraries.
Matches your host site's branding instantly via the accent attribute.
Built-in api-key tracking for domain-locked security and submission limits.
Follow these steps to deploy the component to any web property.
Add the production-ready UMD bundle to your header or footer.
<script src="https://contacti.app/js/index.js"></script>
Place the custom tag anywhere in your HTML. The api-key is required for backend processing.
<universal-contact-form
api-key="USE_YOUR_UNIQUE_API_KEY"
fields="fullName,email,message"
accent="#764ba2">
</universal-contact-form>
| Attribute | Required | Description |
|---|---|---|
api-key |
Yes | Your unique API-KEY. Used for domain whitelisting, send-to-email, and usage limits. |
fields |
No | Comma-separated StandardFieldName list. Defaults to fullName,email,message. |
accent |
No | The hex color for buttons and focus states. Defaults to #0066FF. |
success-mode |
No | Values: message, checkbox, or redirect. |
Origin header matches the domain registered to your api-key in the Control Plane.
Usage is measured per-submission. Every time a user clicks "Submit," the system performs the following checks:
api-key exists in the Data Plane.The following keys can be used in the fields attribute. Each field comes with pre-configured validation and labels.
💡 Tip: Browse fields by category for intuitive grouping, or switch to "All Fields" view to see everything in one place. Use the search bar to quickly find specific fields.
firstName Text
lastName Text
fullName Text
email Email
emailConfirmation Match
phone Tel
phoneCountryCode Select
mobilePhone Tel
workPhone Tel
faxNumber Tel
company Text
companySize Select
jobTitle Text
department Text
industry Select
website URL
budgetRange Select
addressLine1 Text
addressLine2 Text
city Text
state Text
stateProvince Text
postalCode Text
zipCode Text
country Select
region Text
subject Text
inquiryType Select
message Textarea
description Textarea
comments Textarea
preferredContactMethod Radio
urgency Select
priority Select
referralSource Select
productInterest Multiselect
serviceInterest Multiselect
timeframe Select
projectType Text
topicCategory Select
budgetRange Select
termsAccepted Checkbox
privacyPolicyAccepted Checkbox
marketingConsent Checkbox
newsletterOptIn Checkbox
gdprConsent Checkbox
communicationPreferences Multiselect
dataProcessingConsent Checkbox
requestedCallbackTime Datetime
preferredLanguage Select
existingCustomer Radio
accountNumber Text
orderNumber Text
ticketNumber Text
attachments File
additionalDocuments File
resume File
portfolio URL
formSource Hidden
formVersion Hidden
userAgent Hidden
referrerUrl Hidden
landingPage Hidden
sessionId Hidden
utmSource Hidden
utmMedium Hidden
utmCampaign Hidden
utmContent Hidden
utmTerm Hidden
captchaToken Hidden
submissionTimestamp Hidden
ipAddress Hidden
📌 Note: Hidden metadata fields (like utmSource, userAgent, and ipAddress) are automatically captured and do not need to be included in the fields attribute.