# Submit Component

As a registered partner, you can submit new components directly from the Partner Library. The component submission is a clearly defined workflow process that includes metadata entry, file uploads, or category assignment. All the components submitted by Emporix partners undergo a diligent review process from the Emporix side to ensure the appropriate level of quality and security. The partners can easily track the status of the component submission, from draft, through review, to publish stages.

## Prerequisites

Take into account these rules and good practices for the components submission.

* **Attachments validation rules**

  Emporix supports attachments that are compatible with the Emporix platform to allow proper rendering and functioning after installation on customers' tenants.

  * AI agents, value streams, or custom entities in question need to be first exported directly from the Emporix Management Dashboard using the export functionality.
  * MD extensions and MD perspectives must follow the [MD extension template](https://github.com/emporix/md-extensions/tree/master). For more information, see the [Enabling Custom Extensions](/ce/extensibility-and-integrations/extensibility-cases/custom-extensions.md) guide.
* **Components IDs naming convention**

  The IDs of the **AI agents** and **custom entities** that you attach during component submission must start with your company name prefix, like `<partner-name>-agentName`.

  For example, `partnerrix-overstock-agent`, `partnerrix-contractEntity`.

  This convention ensures that there are no clashing IDs and the attachments are properly assigned. So, before exporting the necessary subcomponents, make sure that their IDs follow the convention pattern.
* **Custom entities single import**

  If the component you intend to submit uses a custom entity, inlude it in the attachments. If more than one custom entity is required and one references another, first export all the relevant custom entities in one go to a single `JSON` file and then import it as a single attachment to avoid entities duplication and IDs collission. For more information, see the [Custom Entities](/ce/management-dashboard/settings/custom-entities.md).

## Add a component

To submit a new component to the Partner Library, follow these steps.

{% stepper %}
{% step %}

#### Choose to add a component

In the **Partner Library**, go to the **My Components** view and choose **Create a new component** option.
{% endstep %}

{% step %}

#### Provide the component details

Fill in the form with the general details of the component you intend to submit, including basic information about its purpose, use cases, categories, icons, and billing costs. All details you provide in the form are visible on the component details page so customers can make informed purchase decisions.

<figure><img src="/files/Db3N4bVDpBjBnCdjiI38" alt="Submit component - general information"><figcaption><p>Submit component - general information</p></figcaption></figure>
{% endstep %}

{% step %}

#### Attach the component

Choose the relevant component category:

* AI Agent
* Value Stream
* Cloud Function
* MD Extension
* MD Perspective
* Custom Entity (applicable if your component requires usage of a custom entity)

From your device directory, select the file containing the matching component and drag it to the upload space. The upload starts automatically.

For complex components, attach multiple files for each separate component in the package. Choose the **+** to add more files and associate them with relevant categories.

{% hint style="info" %}
If you use an AI agent within a value stream, you do not need to attach the agent separately. The agent is already a part of the JSON file defining the value stream.
{% endhint %}

**Supported file types:**

* AI agents, value streams, and custom entities - attach valid `JSON` files.
* Cloud functions, MD extensions and MD perspectives - attach `ZIP` files.

<figure><img src="/files/EY6SzlS9W17cBNqJfLeL" alt="Submit component - select component type"><figcaption><p>Submit component - select component type</p></figcaption></figure>

<figure><img src="/files/1HEqPbRMOxW8vncyJGNb" alt="Submit component - attach file"><figcaption><p>Submit component - attach file</p></figcaption></figure>
{% endstep %}

{% step %}

#### Describe features and benefits

Provide the component key features and benefits it brings to the customer. Enter these one by one by adding **+**.

<figure><img src="/files/rpqkZ1AgYrOqUpX0u0LV" alt="Submit component - describe features and benefits"><figcaption><p>Submit component - describe features and benefits</p></figcaption></figure>
{% endstep %}

{% step %}

#### Define regional settings

Select the supported regions and languages for your component.

<figure><img src="/files/Iv9U7ZSj9cRjvgSdkCdE" alt="Submit component - define regional settings"><figcaption><p>Submit component - define regional settings</p></figcaption></figure>
{% endstep %}

{% step %}

#### Submit component

Your agreement to accept terms and conditions is required to submit a component. When you fill in all the details, choose the **Submit component** option. As a result, the component is visible in the **My components** listing with the `In progress` status. This means that the component is in the draft mode and is not yet reviewed nor published. You are able to apply changes and edit the component details at this stage.

<figure><img src="/files/uhr87uKVpSbEWTeQAKgz" alt="Submit component - draft" width="400"><figcaption><p>Submit component - draft state</p></figcaption></figure>
{% endstep %}

{% step %}

#### Request review

When you are happy with the component shape and descriptions, submit it to Emporix for technical and quality review.

<figure><img src="/files/EjQFVMZFFOSXnfzabOcG" alt="Submit component - request review" width="400"><figcaption><p>Submit component - request review</p></figcaption></figure>

The status changes to `Pending` for the time Emporix team reviews all the details.

<figure><img src="/files/8ahC6Qquq3h0yMLrDd7F" alt="Submit component - pending status" width="400"><figcaption><p>Submit component - pending status</p></figcaption></figure>

{% hint style="info" %}
You get email confirmation when Emporix starts the review process and subsequent email notifications about the review outcomes.
{% endhint %}
{% endstep %}

{% step %}

#### Apply review amendments and publish

If required, correct any inconsistencies spotted by Emporix during the review and submit again.

<figure><img src="/files/kpDyYk4oZ1entxZ3qXO6" alt="Submit component - rejection message" width="400"><figcaption><p>Submit component - rejection message</p></figcaption></figure>

<figure><img src="/files/PNF9pUTmaVFxIbi1oztt" alt="Submit component - rejected status" width="400"><figcaption><p>Submit component - rejected status</p></figcaption></figure>

When you're done with the relevant edits and Emporix approves your component, it is published and activated in the Partner Library.

<figure><img src="/files/YfzDSoIhwSc38qubhYKc" alt="Submit component - published status" width="400"><figcaption><p>Submit component - published status</p></figcaption></figure>
{% endstep %}
{% endstepper %}

As a result, the component is available in the **Component Overview** for all customers to be requested and purchased.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.emporix.io/partner-library/partners-flow/submit-component.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
