> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Contact sales

> Talk to the ModuleX team about an Enterprise plan — when to reach out, what to prepare, and how to start the conversation.

export const MediaEmbed = ({id, type = 'screenshot', caption = '', ext, ratio = '16 / 9'}) => {
  const isVideo = type === 'video' || type === 'app_video';
  const resolvedExt = ext || (isVideo ? 'mp4' : type === 'screenshot' ? 'webp' : 'svg');
  const src = 'https://media.modulex.dev/' + id + '.' + resolvedExt;
  const [status, setStatus] = useState('loading');
  const [isDev, setIsDev] = useState(false);
  const [inView, setInView] = useState(false);
  const boxRef = useRef(null);
  useEffect(() => {
    if (typeof window === 'undefined') return;
    const h = window.location.hostname;
    setIsDev(h === 'localhost' || h === '127.0.0.1' || h.endsWith('.mintlify.app'));
  }, []);
  useEffect(() => {
    if (inView) return;
    if (typeof IntersectionObserver === 'undefined') {
      setInView(true);
      return;
    }
    const el = boxRef.current;
    if (!el) return;
    const io = new IntersectionObserver(entries => {
      if (entries.some(e => e.isIntersecting)) {
        setInView(true);
        io.disconnect();
      }
    }, {
      rootMargin: '300px'
    });
    io.observe(el);
    return () => io.disconnect();
  }, [inView]);
  if (status === 'missing') {
    if (!isDev) return null;
    return <div style={{
      display: 'flex',
      flexDirection: 'column',
      justifyContent: 'center',
      gap: '0.4rem',
      padding: '1rem 1.25rem',
      margin: '1.25rem 0',
      width: '100%',
      aspectRatio: ratio,
      boxSizing: 'border-box',
      border: '1px dashed rgba(128,128,128,0.45)',
      borderRadius: '0.75rem',
      background: 'rgba(128,128,128,0.06)',
      color: 'currentColor',
      fontSize: '0.85rem',
      lineHeight: 1.45
    }}>
        <div style={{
      display: 'flex',
      alignItems: 'center',
      gap: '0.5rem',
      opacity: 0.75
    }}>
          <span aria-hidden="true">🎬</span>
          <code style={{
      fontSize: '0.75rem'
    }}>{id}</code>
          <span style={{
      fontSize: '0.65rem',
      textTransform: 'uppercase',
      letterSpacing: '0.04em',
      padding: '0.1rem 0.4rem',
      borderRadius: '0.4rem',
      background: 'rgba(128,128,128,0.18)'
    }}>
            {type}
          </span>
        </div>
        <div style={{
      opacity: 0.9
    }}>{caption || 'Media not uploaded yet.'}</div>
        <div style={{
      fontSize: '0.7rem',
      opacity: 0.5
    }}>
          Upload to R2 as <code>{id}.{resolvedExt}</code> — preview only, hidden in production.
        </div>
      </div>;
  }
  const mediaStyle = {
    display: status === 'loaded' ? 'block' : 'none',
    width: '100%',
    height: 'auto',
    borderRadius: '0.75rem'
  };
  const media = isVideo ? <video src={inView ? src : undefined} autoPlay loop muted playsInline preload="metadata" onLoadedData={() => setStatus('loaded')} onError={() => setStatus('missing')} style={mediaStyle} /> : <img src={inView ? src : undefined} alt={caption} onLoad={() => setStatus('loaded')} onError={() => setStatus('missing')} style={mediaStyle} />;
  return <figure style={{
    margin: '1.25rem 0'
  }}>
      <div ref={boxRef} style={status === 'loaded' ? {
    width: '100%'
  } : {
    width: '100%',
    aspectRatio: ratio,
    borderRadius: '0.75rem',
    background: 'rgba(128,128,128,0.06)'
  }}>
        {media}
      </div>
      {status === 'loaded' && caption ? <figcaption style={{
    marginTop: '0.5rem',
    textAlign: 'center',
    fontSize: '0.85rem',
    opacity: 0.7
  }}>
          {caption}
        </figcaption> : null}
    </figure>;
};

Enterprise is the only ModuleX plan that is **sales-led** — there is no self-serve checkout. You agree on scope, limits, and pricing with the ModuleX team, and your organization is configured to match. This page covers when to reach out, what to have ready, and how to start the conversation.

<Note>
  Enterprise is one of four ModuleX plans: **Free**, **Pro**, **Max**, and **Enterprise**. To see what Enterprise adds and why teams choose ModuleX, read [ModuleX for enterprise](/enterprise/overview). For the full side-by-side comparison of allowances and limits, see [Plans & pricing](/billing/plans).
</Note>

## When to contact sales

Reach out when a fixed paid plan no longer fits how your organization works. The most common reasons:

<CardGroup cols={2}>
  <Card title="You need SSO / SAML" icon="key">
    Your team should sign in through your own identity provider instead of
    managing individual ModuleX logins.
  </Card>

  <Card title="You want to self-host" icon="server">
    You need to run ModuleX in your own environment for data-residency or
    infrastructure-control reasons.
  </Card>

  <Card title="You've outgrown the fixed tiers" icon="gauge">
    You need custom rate limits or a credit allowance sized to your real usage,
    rather than the Pro or Max caps.
  </Card>

  <Card title="You're rolling out to a large team" icon="users">
    You're adding many teammates across departments and want per-seat licensing
    with no fixed cap.
  </Card>

  <Card title="You need dedicated support" icon="life-buoy">
    You want a dedicated Slack channel with the ModuleX team rather than
    community or email support.
  </Card>

  <Card title="You want hands-on onboarding" icon="hand">
    You'd like guided setup to get your organization running quickly.
  </Card>
</CardGroup>

If you only need a couple of these and your usage fits within a fixed tier, compare [Plans & pricing](/billing/plans) first — you may not need Enterprise yet. If you're not sure, reach out anyway; the team can help you decide.

<MediaEmbed id="MX-MEDIA-4330" type="image" caption={"A simple \"is Enterprise right for you?\" decision graphic."} />

## What to prepare

A short conversation goes faster when you arrive with a few details. None of these are required to reach out, but having them ready helps the team scope the right plan on the first call.

<Steps>
  <Step title="Your team size">
    Roughly how many people will use ModuleX. The team typically works in these
    brackets: 1–10, 11–50, 51–200, and 200+.
  </Step>

  <Step title="The capabilities you need">
    Which Enterprise features matter to you — for example single sign-on,
    self-hosted deployment, custom limits, dedicated support, or onboarding. See
    [ModuleX for enterprise](/enterprise/overview) for the full list.
  </Step>

  <Step title="Your expected usage">
    A rough sense of how much you'll run — number of workflows, how often they
    run, and whether you'll use ModuleX-managed models or [bring your own
    keys](/billing/credits). This helps size your credit allowance and rate
    limits.
  </Step>

  <Step title="Deployment and security requirements">
    Whether you need self-hosting, specific data-residency, or have a security
    review process. For background, see the [Security overview](/security/overview)
    and [Deployment & SSO](/enterprise/deployment-sso).
  </Step>

  <Step title="Your timeline">
    When you want to be up and running, and any procurement or review steps on
    your side.
  </Step>
</Steps>

<Note>
  You don't have to figure out exact numbers before reaching out. The team will help you translate your needs into seats, limits, and a credit allowance during the conversation.
</Note>

## How to reach the team

Start an Enterprise conversation in whichever way is easiest for you.

<CardGroup cols={2}>
  <Card title="Email the team" icon="mail" href="mailto:contact@modulex.dev">
    Write to **[contact@modulex.dev](mailto:contact@modulex.dev)** with your team size and what you're trying
    to do. It's the fastest way to start.
  </Card>

  <Card title="Use the contact form" icon="message-square" href="https://modulex.dev/contact-sales">
    Fill in the Enterprise contact form on the ModuleX website and the team will
    follow up.
  </Card>
</CardGroup>

You can also reach Enterprise sales from inside the product: the Enterprise plan has no self-serve checkout, so choosing it directs you to contact the team rather than to a payment screen.

<Note>
  Have a question that isn't about Enterprise pricing — billing, an account issue, or a technical problem? Start at [Getting help](/help/getting-help) instead, which points you to the right channel.
</Note>

## What happens next

<Steps>
  <Step title="You reach out">
    Send your details by email or through the contact form.
  </Step>

  <Step title="The team scopes your plan">
    You agree on seats, custom rate limits and credits, SSO, deployment, and the
    support channel that fit your organization.
  </Step>

  <Step title="Your organization is configured">
    The ModuleX team sets up your Enterprise plan and helps you onboard your team.
  </Step>
</Steps>

## Common questions

<AccordionGroup>
  <Accordion title="Do I have to talk to sales to use ModuleX?">
    No. Free, Pro, and Max are all self-serve — you can sign up and start without
    talking to anyone. Sales is only for Enterprise, where scope, limits, and
    pricing are agreed with the team. See [Plans & pricing](/billing/plans).
  </Accordion>

  <Accordion title="Can I try ModuleX before contacting sales?">
    Yes. The Free plan includes trial credits and requires no credit card, so you
    can build with the AI Composer and test real Assistant runs first. Then reach
    out when you know you need Enterprise capabilities.
  </Accordion>

  <Accordion title="How is Enterprise priced?">
    Enterprise pricing is custom — it's based on your seats, usage, and the
    capabilities you need, rather than a fixed monthly price. The team will give
    you a quote once your plan is scoped.
  </Accordion>

  <Accordion title="What can the team set custom limits on?">
    Enterprise replaces the fixed-tier caps with negotiated values — for example
    your credit allowance and rate limits are configured per organization rather
    than fixed at the Pro or Max tier. For how these work, see [Credits &
    metering](/billing/credits) and [Usage gating & limits](/billing/usage-gating).
  </Accordion>

  <Accordion title="Who on my team should reach out?">
    Anyone can start the conversation, but it helps if the person knows your team
    size, expected usage, and any security or deployment requirements. In ModuleX,
    organization roles are **owner** and **admin** — billing and plan changes
    require one of these. See [Roles & permissions](/security/roles-permissions).
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={3}>
  <Card title="ModuleX for enterprise" icon="building" href="/enterprise/overview">
    Why teams and enterprises choose ModuleX.
  </Card>

  <Card title="Enterprise capabilities" icon="shield-check" href="/security/enterprise">
    SSO, self-hosting, seats, custom limits, and support in detail.
  </Card>

  <Card title="Plans & pricing" icon="table" href="/billing/plans">
    Compare Free, Pro, Max, and Enterprise side by side.
  </Card>
</CardGroup>
