How to create or define CompanyContactRoles?

How can we define custom CompanyContactRoles (if at all)?
The Admin UI and GraphQL schema expose two roles—“Location admin” and “Ordering only”. The CompanyContactRole object has a name field (String!, examples: “admin”, “buyer”), which implies more roles are possible.

What I observe

  • Company page: shows customers, but no job titles or role labels except “Main contact”.
  • Company Location page: customers listed with their location‑level permissions (admin / ordering).

What I’ve tried

queried CompanyMutationsFiltered
query CompanyMutationsFiltered {
  __schema {
    mutationType {
      fields(includeDeprecated: true) {
        name
        description
        args {
          name
          type {
            name
            kind
            ofType {
              name
              kind
            }
          }
        }
      }
    }
  }
}

→ No companyContactRoleCreate / companyRoleCreate.

manually guessed mutations

I tried: companyRoleCreate, companyContactRoleCreate, roleCreate, contactRoleCreate with various input structures: simple (name only), complex (name, note, companyId)

→ all attempts failed with “undefined field” and “input type not defined” errors

Questions

  1. Can merchants or apps create additional roles (e.g., “Billing”, “Buyer”)?
  2. If not today, is that on the roadmap or are roles intentionally fixed?
  3. Are stores surfacing Customer roles/titles in the admin in any other way?
1 Like

Hey @Emily

You’re correct that CompanyContactRole objects are system-defined with only two available roles: “Location admin” and “Ordering only.” Currently there are no mutations for creating custom CompanyContactRoles.

For workarounds, additional role logic could be handled at the application level using solutions like metafields for storing supplementary role information.

For this being on the roadmap, there’s nothing currently announced, but I’ll be sure to pass on your feedback. This is currently surfaced in the admin customers section.

1 Like