Macha

Freshdesk Contacts & Companies Explained

Abbas, Customer Support & AI, Macha

Written by

Ankeet Guha, Co-founder & CTO, Macha

Reviewed by

Published July 16, 2026

Updated July 16, 2026

Every ticket in Freshdesk is attached to a person, and most of those people belong to an organization — which is exactly the split the customer-data model is built around. Contacts are the individuals who write in; companies are the organizations that group them. Get this layer right and your help desk knows who's a VIP, which account a request belongs to, and how fast you've promised to reply — all before an agent reads a word. Get it vague and you end up re-typing the same customer details onto every ticket and guessing at priority. This guide explains how contacts and companies actually work, how to add custom fields to both, how to import your existing customer data, and how to scope an SLA policy to a whole company — and it stays honest about where the native model runs out of road.

Freshdesk Contacts & Companies Explained

Contacts vs companies: what each one is

A contact is a single person — the requester on a ticket. Freshdesk identifies each contact primarily by email address, which is why email is the unique key for the record. A contact carries the usual profile fields (name, email, phone, title, time zone) plus whatever custom fields you add, and it accumulates a history of every ticket that person has ever raised.

A company is an organization that a group of contacts belongs to — think "Acme Inc" with a dozen employees who all submit tickets. Companies exist so you can manage customers at the account level instead of one person at a time: you can attach domains so new contacts auto-associate, keep notes and a health status, and — importantly — apply account-wide rules like a stricter SLA. When you open a company record you see its linked contacts, its info fields, the SLA policy governing its tickets, and a timeline of everything the account has ever raised.

A Freshdesk Company record (Acme Inc) showing linked Contacts (2), the associated SLA Policy (Default policy), company info/notes, and a timeline of the company's tickets.
A Freshdesk Company record (Acme Inc) showing linked Contacts (2), the associated SLA Policy (Default policy), company info/notes, and a timeline of the company's tickets.

The relationship is one-to-many: one company holds many contacts, and each contact belongs to (at most) one company. That single link is what lets Freshdesk answer "which account is this ticket for?" automatically, and it's the foundation everything else in this post builds on.

How contacts get created and associated

Contacts land in Freshdesk three ways, and you rarely create them by hand:

  1. Automatically, from an incoming ticket. The first time someone emails your support address, Freshdesk creates a contact from their email. This is by far the most common path.
  2. Manually, under the Contacts tab, when you want to pre-load someone before they write in.
  3. By import, in bulk from a CSV — covered below.

Association to a company happens either by email domain (add acme.com to the Acme company record, and every new @acme.com contact attaches to it automatically) or by editing an individual contact and setting its company by hand. The domain-matching route is what makes companies mostly self-maintaining once the record exists — new employees at an existing customer slot into the right account without anyone touching them.

Custom contact and company fields

The default fields cover the basics, but the real value comes from custom fields that capture what your business cares about — an account tier, a renewal date, a Shopify customer ID, a region. Per Freshworks' Manage your Customer Data Schema documentation, custom fields live in two separate places:

  • Contact fields: Admin → Support Operations → Contact Fields
  • Company fields: Admin → Support Operations → Company Fields

Custom fields are gated: you need the Growth plan or above to create them. Once you're there, you build a field by dragging a field type onto the layout, and eight types are available — Single-line Text, Multi-line Text, Checkbox, Number, Dropdown, Phone number, Date, and, for companies only, URL.

A couple of practical notes. Each field has a "Display to agent" toggle — turn it off and the field is hidden from the requester/ticket widget (it shows an "invisible" icon in the field list). And the field type you choose matters more than it looks, because — as the next section shows — only certain types can be used to filter companies for an SLA.

Importing your existing customer data

If you're moving from another tool or seeding accounts in bulk, Freshdesk imports contacts and companies from CSV. Per the Import and export customers documentation:

  1. Go to the Contacts tab and click Import (to import companies, use the Import button on the Companies page).
  2. Click Upload a File and select your CSV.
  3. Map the CSV columns to Freshdesk fields.
  4. Click Import and wait for it to finish.

Two requirements catch people out. First, your CSV must include a Name plus either an email address or a phone number — email is the unique identifier, so a row without one can't be de-duplicated. Second, and this is the big one: any custom fields in your CSV must already exist in Freshdesk before you import. Add them under Admin → Support Operations → Contact/Company Fields first, or those columns simply won't map. Build the schema, then pour the data in — not the other way around.

Company-level SLAs: how to actually do it

This is the part people expect to be a single toggle and it isn't. There's no "company SLA" field you flip on a company record. Instead, you scope an SLA policy to a company segment — and that's a specific, slightly roundabout recipe. Based on Freshworks' community guidance:

  1. Create a custom company dropdown field (e.g. "Account Tier" with values Enterprise / Standard / Trial) under Admin → Support Operations → Company Fields.
  2. Populate it — export your companies, fill in the tier column, and import them back.
  3. Build a segment on the Companies tab: click Add filters, filter by your custom field, and save the result as a segment.
  4. Reference that segment when you create a new SLA policy, so tickets from those companies get the tighter targets.

Note the catch that trips teams up: SLA filtering works on custom company fields of type dropdown, number, or checkbox — but not on Freshdesk's default built-in company fields. So even if there's a native "account tier" concept, the documented workaround is to duplicate that value into a custom dropdown you can actually filter on. It's a real limitation, and Freshworks has logged it as a feature request. (Remember, too, that creating multiple SLA policies at all requires Pro or above — the default policy is the only one you get on lower tiers.) If you want the full policy-building walkthrough, our companion guide on Freshdesk automations covers the surrounding workflow rules that read these same fields.

The honest limits — and where an AI layer picks up

The contacts-and-companies model is solid, deterministic infrastructure: it stores who your customers are, groups them by account, and lets rules read those attributes. That's genuinely valuable and worth keeping as your source of truth. But notice what the data model doesn't do.

It stores context; it doesn't use it. A contact's tier or a company's renewal date sits on the record until a human opens the sidebar, reads it, and decides what it means for this reply. The data doesn't draft the answer, doesn't decide the tone, and doesn't fetch anything live — if the question is "what's the status of Acme's order #4471?", the company record can't answer it, because that data lives in Shopify or your order system, not in Freshdesk. And the custom fields you so carefully built only shape a ticket if an automation rule or an agent explicitly acts on them; on their own they're just fields.

This is the seam where an AI agent layer fits, and it's worth being clear-eyed about it. The broader category of AI agents for customer service exists to do the reasoning the data model can't. Macha is one such layer: it runs on top of the Freshdesk you already use as a native connector — it does not replace your help desk, your contacts, or your companies. You connect Macha to Freshdesk with your subdomain and API key, and it reads the same contact and company records your team maintains: recognizing a contact's account tier and tailoring the response, checking a company's SLA context before it replies, and reaching past Freshdesk into your order or billing system through a custom tool that turns a REST API into something the agent can call — so "what's the status of order #4471?" gets an actual answer instead of a lookup. If you want to see how that connects end to end, our guide on how to automate Freshdesk with AI walks through the setup.

Two honest clarifications so there's no confusion. Macha's connector is for Freshdesk specifically — not Freshchat, Freshservice, or Freshcaller. And Macha's credits are consumed per AI action, not per resolution — the pricing page breaks down exactly what counts. The clean division of labour: keep Freshdesk's contacts and companies as the system of record for who your customers are, and layer an agent on top for the part the records can't do — turning that stored context into a fast, grounded reply.

FAQ

What's the difference between a contact and a company in Freshdesk? A contact is an individual person (the requester on a ticket), identified primarily by email address. A company is an organization that groups many contacts together — one company holds many contacts, and each contact belongs to at most one company. Companies let you manage customers at the account level, including attaching domains, notes, and an SLA policy.

Where do I add custom contact or company fields? Contact fields live under Admin → Support Operations → Contact Fields, and company fields under Admin → Support Operations → Company Fields. Creating custom fields requires the Growth plan or above. Available types include text, checkbox, number, dropdown, phone, date, and (for companies) URL.

How do I set a different SLA for a specific company? There's no direct "company SLA" toggle. You create a custom company dropdown field (e.g. account tier), populate it, build a company segment by filtering on that field on the Companies tab, and then reference that segment in a new SLA policy. Note that multiple SLA policies require Pro or above, and SLA filtering only works on custom fields of type dropdown, number, or checkbox — not default company fields.

How do I import contacts and companies into Freshdesk? Use the Import button on the Contacts tab (or the Companies page for companies), upload a CSV, map the columns, and import. Your CSV needs a Name plus an email or phone number, and any custom fields must already exist in Freshdesk before you import — add them under Admin → Support Operations first.

Can I add AI to my Freshdesk contacts and companies without replacing Freshdesk? Yes. An AI agent layer like Macha connects to Freshdesk as a native connector and reads the same contact and company records you already maintain — it doesn't replace them. It can recognize a contact's tier, check company context, and look up external data through a custom tool, while Freshdesk stays the system of record for who your customers are.

Ready to turn the customer data you already store into faster, grounded replies? Start a free trial of Macha and connect it to your Freshdesk in minutes.

Macha

About Macha

Macha is an AI agent platform that works on top of the help desk you already use — Zendesk, Freshdesk, Gorgias, or Front — and connects to the rest of your stack, even your own internal systems. Its AI agents resolve tickets and automate entire workflows end to end, all set up in plain English, no code. Learn more about Macha →

Zendesk
5.0 on Zendesk Marketplace

Loved by support teams worldwide

See what support teams are saying about Macha AI.

The application seems excellent to me! We are still testing, and we need support for some details and they were extremely efficient too!

Daniela Costa

Daniela Costa

Head of Support, Seabra

Macha has been a great addition to our support toolkit. It generates clear, well-organized responses that fit naturally into our workflow. One feature we particularly appreciate is its ability to automatically reply in the same language as the ticket.

Marius F

Marius F

Support Head, Zentana

We've been using Macha for a little while now and it's been really great addition so far! It's powerful, convenient, and makes getting work done a lot easier for our agents.

Alexander Wedén

Alexander Wedén

Head of Support

Support team is very helpful and responsive. Really enjoy how lightweight this is within Zendesk itself vs other more intrusive tools.

Cathleen Wright

Cathleen Wright

Zendesk Admin, Cortex IO

So far it's pretty good! Our queries are a little nuanced, so we can't always use it, but it's got enough utility for us. It can even incorporate our bilingual country with greetings in a second language.

Jae Oliver

Jae Oliver

Head of Support, Wise

Really enjoying using Macha, it has made a noticeable difference to our support team in a short amount of time. I really like the ticket summary feature, saves us a lot of time.

Harry Jackson

Harry Jackson

Head of Support, Crumb

Macha AI is a great addition to my workspace! It's powerful, convenient, and it really makes productivity so much easier for our agents!

Dave G

Dave G

Head of Support, Cyber Power Systems

Very impressed! AI integration for Zendesk has certainly come a long way and Macha seems to set the standard for now. This will for sure save lot of time in our support team.

Pauli Juel

Pauli Juel

Head of CS, Dokument24

Macha has been working great for us so far! The auto-responses are accurate and our resolution time has dropped significantly.

Lana T

Lana T

Zendesk Admin, Swotzy

Macha AI is a great addition. The knowledge base feature means our agents always have the right answers at their fingertips.

Mischa Wolf

Mischa Wolf

Head of Support, Topi

We're enjoying this integration so far. It's made our support team more efficient and our customers get faster responses.

Paula G

Paula G

Head of Customer Support, Xly Studio

The team enjoys using it. It saves considerable time on common questions and the integration options are excellent.

Kilian Leister

Kilian Leister

Support Head, Didriksons

Ready to supercharge your team with AI?

Get started in minutes. Connect your tools, configure your agents, and let AI handle the rest.

7-day free trial · no credit card required