ContactPoint schema: reachability as a trust signal
Why reachability builds trust
One of the most fundamental questions AI models ask when evaluating a source is: can I verify this organization? Reachability plays a crucial role here. A company that clearly indicates how you can reach it, by phone, email or physical address, radiates transparency. This is a core element of the Trustworthiness pillar in E-E-A-T.
The ContactPoint schema in Schema.org enables you to provide structured contact information that AI models and search engines can directly understand. Instead of hoping that a crawler correctly interprets your contact page, you explicitly state which contact channels you offer, for what purposes and at what times.
Websites with structured contact information in Schema.org markup are considered significantly more trustworthy by AI models than websites that only offer a contact form without further details.
ContactPoint schema in detail
The ContactPoint type in Schema.org provides a rich set of properties to describe your contact channels. The most important are telephone, email, contactType, areaServed and availableLanguage. By defining multiple ContactPoints you can describe different departments and purposes separately.
Below you will find an extensive example of Organization schema with multiple ContactPoints for customer service, sales and technical support.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Kobalt Digital",
"url": "https://www.kobaltdigital.nl",
"logo": "https://www.kobaltdigital.nl/images/logo.png",
"contactPoint": [
{
"@type": "ContactPoint",
"telephone": "+31-20-123-4567",
"contactType": "customer service",
"email": "info@kobaltdigital.nl",
"areaServed": ["NL", "BE"],
"availableLanguage": ["Dutch", "English"],
"hoursAvailable": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday", "Tuesday", "Wednesday",
"Thursday", "Friday"
],
"opens": "09:00",
"closes": "17:30"
}
},
{
"@type": "ContactPoint",
"telephone": "+31-20-123-4568",
"contactType": "sales",
"email": "sales@kobaltdigital.nl",
"areaServed": ["NL", "BE", "DE"],
"availableLanguage": ["Dutch", "English", "German"]
},
{
"@type": "ContactPoint",
"telephone": "+31-20-123-4569",
"contactType": "technical support",
"email": "support@kobaltdigital.nl",
"url": "https://www.kobaltdigital.nl/support",
"areaServed": "NL",
"availableLanguage": ["Dutch", "English"]
}
]
}
</script>Dive deeper: Schema.org markup: the language AI understands | SameAs links for digital identity | HTTPS and HSTS as trust signals
ContactPoint properties explained
Each property in the ContactPoint schema contributes to the trust profile that AI models build of your organization. Let us walk through the most important properties.
- contactType: describes the purpose of the contact point. Common values are "customer service", "sales", "technical support", "billing support" and "reservations". Always use English values as these are standardized by Schema.org.
- telephone: the phone number in international format. Always start with the country code (for example +31 for the Netherlands). Multiple numbers can be included in separate ContactPoints.
- email: the email address for this specific contact point. Use functional addresses (info@, sales@, support@) rather than personal ones.
- areaServed: the countries or regions you serve. Use ISO 3166-1 country codes. This helps AI models match you to geographically relevant queries.
- availableLanguage: the languages in which you are reachable. Use full language names or ISO 639-1 codes.
- hoursAvailable: your opening hours via OpeningHoursSpecification. This prevents frustration for potential customers and shows professionalism.
contactType values: the complete list
Schema.org does not define an exhaustive list of contactType values, but there are standardized terms that are widely recognized by AI models and search engines. Use the following values for maximum recognition.
// Standardized contactType values
"customer service" // General customer service
"technical support" // Technical support
"sales" // Sales and acquisition
"billing support" // Billing and payments
"reservations" // Reservations and bookings
"credit card support" // Credit card related queries
"emergency" // Emergency (24/7)
"baggage tracking" // Baggage tracking (travel)
"roadside assistance" // Roadside assistance (automotive)
"package tracking" // Package tracking (logistics)Combining ContactPoint with other schema types
ContactPoint becomes even more powerful when you combine it with other Schema.org types. Consider LocalBusiness for physical locations, ProfessionalService for service providers or MedicalOrganization for healthcare institutions. Combined with sameAs links you create a complete trust profile.
LocalBusiness with ContactPoint
For businesses with a physical location, the combination of LocalBusiness and ContactPoint is ideal. You add not only contact information, but also an address and geographic coordinates that help AI models with local search queries.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ProfessionalService",
"name": "Kobalt Digital",
"address": {
"@type": "PostalAddress",
"streetAddress": "Herengracht 100",
"addressLocality": "Amsterdam",
"postalCode": "1015 AA",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.3676,
"longitude": 4.8937
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+31-20-123-4567",
"contactType": "customer service",
"email": "info@kobaltdigital.nl",
"availableLanguage": ["Dutch", "English"]
},
"sameAs": [
"https://www.linkedin.com/company/kobalt-digital",
"https://github.com/kobalt-digital"
]
}
</script>E-commerce: ContactPoint for webshops
Webshops often have multiple contact needs: customer service for orders, return handling and technical product questions. By defining a separate ContactPoint for each, you give AI models a complete picture of your reachability.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Webshop",
"contactPoint": [
{
"@type": "ContactPoint",
"contactType": "customer service",
"telephone": "+31-20-555-0100",
"email": "customerservice@example.nl",
"contactOption": "TollFree",
"areaServed": "NL"
},
{
"@type": "ContactPoint",
"contactType": "sales",
"telephone": "+31-20-555-0101",
"email": "business@example.nl",
"areaServed": ["NL", "BE", "DE"]
}
]
}
</script>Best practices for ContactPoint
To get the most out of your ContactPoint markup, follow these best practices that we have proven in practice.
- Define at least two ContactPoints: one for customer service and one for sales. This shows that your organization works in a structured and professional manner.
- Always use the international phone format with country code. AI models can then automatically display the correct phone number based on the user's location.
- Add hoursAvailable for each contact point. Availability information is a strong signal of transparency and customer focus.
- Ensure that the information in your Schema.org markup matches what is on your website. Inconsistencies undermine trust.
- Update your ContactPoint markup when your contact details change. Outdated phone numbers or email addresses are a negative signal.
- Add a url property that links to the relevant contact page on your website.
ContactPoint and AI citations
The effect of ContactPoint schema on AI citations is indirect but measurable. AI models preferentially cite sources from organizations they consider trustworthy and transparent. Structured contact information contributes to this trust profile in multiple ways.
First, it demonstrates that there is a real organization behind the content, not an anonymous website or content farm. Second, it enables verification: an AI model can in theory check whether the phone number and email address are valid. Third, it contributes to local relevance: if you include areaServed and address details, the model can match your content to specific regions.
The conclusion is clear: ContactPoint schema is a low-threshold optimization with high returns. Implementation takes less than an hour and the signal you send (reachable, transparent, professional) weighs into every evaluation AI models make of your organization. Combined with a solid HTTPS implementation and a complete AEO strategy, you build a trust profile that convinces AI models.
Key takeaways
- ContactPoint schema makes your reachability explicit for AI models, rather than relying on unstructured contact pages.
- Define at least two ContactPoints (customer service and sales) with international phone format, email and available languages.
- Combine ContactPoint with sameAs and Organization schema for the strongest possible trust signal.
- Add hoursAvailable to demonstrate transparency and professionalism.
- Keep your ContactPoint markup current; outdated contact details are more harmful than no details.
Frequently asked questions
Is ContactPoint schema required for good AI visibility?
Not required, but strongly recommended. ContactPoint schema is one of the most impactful Schema.org extensions you can implement with minimal effort. Its absence does not mean you are invisible to AI, but its presence provides a measurably positive signal. The effect is strongest for local businesses and service providers.
Which contactType value should I implement first?
Start with "customer service" because it provides the broadest coverage and is most expected by both AI models and end users. Then add "sales" if you actively generate leads, and "technical support" if you offer a technical product or service. Each additional contactType you add strengthens the picture of a professional, structured organization.
Should I provide a real phone number or can I use a contact form URL?
An actual phone number is always more powerful than just a URL to a contact form. AI models interpret a phone number as a strong trust signal because it implies direct, human reachability. You can add a URL as a supplement via the url property of ContactPoint. The combination of phone number, email address and a contact page URL gives the most complete picture.
How often should I update my ContactPoint markup?
Update your markup immediately when contact details change, such as a new phone number, changed opening hours or a different email address. Additionally, perform a quarterly check to verify everything is still correct. Outdated contact information in your Schema.org markup is a negative signal, especially when it deviates from what is on your website.
Can I use ContactPoint for a SaaS product without a phone number?
Yes. For SaaS companies that do not offer phone support, you can omit the telephone field and focus on email and url. Add a contactType "technical support" with a link to your helpdesk or knowledge base. The key is that you provide a reachable channel and communicate this in a structured way. A live chat URL or support ticket system are also valid contact channels.
The most trustworthy sources are not the sources with the most content, but the sources you can verify and reach. ContactPoint schema makes your organization tangible in a digital world.
How does your website score on AI readiness?
Get your AEO score within 30 seconds and discover what you can improve.