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

# Megaport Marketplace Forms

> This help topic describes how service providers can create forms to collect customer information during connection requests, and how customers complete these forms.

export const Anchor = ({name}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Anchor -';
  if (name === undefined || name === null || name === 'undefined') {
    console.error(`${errorPrefix} \`name\` must have a value — rendering an empty string instead`);
    return <></>;
  }
  const raw = typeof name === 'string' ? name : JSON.stringify(name);
  const id = raw.replace(/\s+/g, '-').replace(/[^A-Za-z0-9_-]/g, '').replace(/-+/g, '-').replace(/^-+|-+$/g, '');
  if (!id) {
    console.error(`${errorPrefix} \`name\` "${name}" sanitizes to an empty id — rendering an empty string instead`);
    return <></>;
  }
  return <a style={{
    scrollMarginTop: 'var(--scroll-mt)'
  }} id={id}></a>;
};

export const Image = ({src, alt = '', caption, width, height, shadow}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Image -';
  if (typeof src !== 'string') {
    src = String(src);
  }
  if (!src || src === 'undefined') {
    console.error(`${errorPrefix} \`src\` is required — rendering an empty string instead`);
    return <></>;
  }
  const img = <img className={['mega-image-style', shadow ? 'shadow' : ''].join(' ')} src={src} alt={alt} width={width} height={height} style={{
    display: 'block'
  }} />;
  return caption ? <figure>
      {img}
      <figcaption style={{
    textAlign: 'center',
    width
  }}>{caption}</figcaption>
    </figure> : img;
};

export const Link = ({href, children}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Link -';
  if (typeof href !== 'string') {
    href = String(href);
  }
  if (!href || href === 'undefined') {
    console.error(`${errorPrefix} the \`href\` property is required — rendering an empty string instead`);
    return <></>;
  }
  if (href.includes('{') || href.toUpperCase().includes('%7B')) {
    console.error(`${errorPrefix} could not resolve a variable in href "${href}" — rendering an empty string instead`);
    return <></>;
  }
  const isExternal = (/^https?:\/\//).test(href);
  return <a href={href} className="link" target={isExternal ? '_blank' : undefined} rel={isExternal ? 'noreferrer' : undefined}>
      {children ?? href}
      {isExternal && <span className="sr-only"> (opens in a new tab)</span>}
    </a>;
};

Megaport Marketplace forms let service providers collect onboarding information from customers during connection requests. Forms simplify onboarding by gathering necessary details upfront, reducing manual communication.

This topic describes how service providers can create forms to collect customer information during connection requests, and how customers complete these forms.

## Megaport Marketplace Forms overview

When a customer submits a connection request to a Megaport Marketplace service provider, the provider might require additional information before approving and provisioning the service. Megaport Marketplace service providers can create forms to collect the information needed to evaluate the connection request. These forms provide a structured way to gather required details as part of the connection request.

**For service providers**, forms let you:

* Define exactly what information you need from customers
* Link forms to specific services for reusability
* Receive completed form data by email or optionally by webhook

**For customers**, when you connect to a provider with a form configured:

* A **Service Request Form** step appears in the connection wizard
* You complete the form fields as part of the connection request
* After deployment, your submitted information appears on a read-only **Service Request Form** tab under the service configuration

## Creating a form (service providers)

As a service provider, you can create forms under your Megaport Marketplace profile and link them to your services. This lets you reuse forms across different services.

<Note>
  * You must be a Company Admin to create and manage forms.
  * Form details cannot be changed after a VXC connection has been requested. If you need to change the form details, you must create a new form and link it to the service. Then customers will need to submit a new connection request with the updated form.
</Note>

**To create a form**

1. In the <Link href="https://portal.megaport.com">Megaport Portal</Link>, choose User Menu > Admin Settings > Megaport Marketplace.

2. Click the **Service Request Forms** tab of your profile.

3. Click **Create Form**.
   <Image src="/images/marketplace/marketplace-form-entry.png" alt="Screen for creating form fields where you can add form fields and field properties" shadow={true} width={700} />

4. Enter a name for the form.

5. Define the form fields and validation requirements.\
   These field types are supported:

   * **Text** -- A free text field for short answers.
   * **Email** -- A field for entering a contact email address.
   * **Text Area** -- A free text field for answers that might require longer or more detailed responses.
   * **Select** -- A drop-down field for selecting a single option from a list of choices. You must define at least 2 options, with a maximum of 100 options per field.

6. Click **Preview Form** to see how the form will appear to customers when they complete it as part of a connection request.

7. Click **Back to Editor** to make any changes to the form, including reordering the fields using the up and down arrows.\
   Otherwise, click **Next** to continue.

8. Select the **I confirm this form only collects information strictly necessary to facilitate a connection** check box to confirm that the form complies with Megaport data collection policies.

9. Click **Save Form**.\
   You can create as many forms as required.

## Linking forms to your services

After you create a form, you can link it to a specific service to enable data collection when customers connect to that service. Only one form can be linked to each service, but the same form can be reused across multiple services.

**To link a form to a service**

1. In your Megaport Marketplace profile, go to the **Services** tab.

2. Click **Edit** next to the service you want to configure.

3. In the **Ask for additional information** drop-down, select the form to associate with this service.

4. Click **Save**.

<Anchor name="marketplace-form" />

## Completing a form (customers)

When you request a connection to a Megaport Marketplace service provider that has a form configured, the connection wizard includes an additional **Service Request Form** step. The service provider has requested this information and your responses will be visible to them.

**To complete a service request form**

1. Start a connection request to a Megaport Marketplace service provider.\
   For more information, see [Requesting a Connection to a Service Provider](/marketplace/connections).

2. When you reach the **Service Request Form** step, complete the form fields.

3. Continue through the remaining steps in the connection wizard.

4. Review and submit your order.

## Viewing submitted form data

Both parties can view the submitted form data during the connection request and approval process.

**For customers**, your submitted information appears on a read-only **Service Request Form** tab when viewing the VXC in the Portal.

**For service providers**, you can view the submitted data:

* On the **Service Request Form** step when reviewing and approving the connection request
* By email at the VXC approval stage, so you have the information before you approve the connection
* By webhook (optional) for integration with your systems

## Email notifications

When a customer submits a connection request that includes form data, the form fields are included in the email notification sent to the service provider for VXC approval. This allows the customer-provided information to be reviewed before the service provider accepts or denies the request.

For more information about the notification and approval process, see [Megaport Marketplace Notifications](/marketplace/notifications).

## Webhook integration

Service providers can also receive VXC approval requests via webhooks to automate onboarding. When a customer requests a connection, Megaport sends an HTTP payload with the VXC details directly to your backend systems.

<Note>
  Webhooks are configured and managed globally by Company Admins in the Webhooks section of the Megaport Portal, rather than at the individual form or service level. For more information about configuring webhooks, see [Using Webhooks in the Megaport Portal](/portal-admin/using-webhooks).
</Note>

## Helpful references

* [Creating a Megaport Marketplace Profile](/marketplace/profile)
* [Managing Megaport Marketplace Forms with the API](/api/api-marketplace-forms)
* [Megaport Marketplace FAQs](/marketplace/marketplace-faqs)
* [Megaport Marketplace Notifications](/marketplace/notifications)
* [Megaport Marketplace Overview](/marketplace/overview)
* [Requesting a Connection to a Service Provider](/marketplace/connections)
