Skip to main content
Level 2
May 26, 2026
Question

How to Create AEM Assets Metadata Schemas in Bulk Using CSV

  • May 26, 2026
  • 2 replies
  • 26 views

I have a requirement for bulk metadata schema creation in AEM Assets using a CSV file, and I’m looking for suggestions or recommended approaches.

Currently, I know the manual process for creating a custom metadata schema:

  1. Go to Projects.html
  2. Open Adobe Experience Manager
  3. Navigate to Tools -> Assets
  4. Open Metadata Schema
  5. Select the Default schema and click Edit
  6. Add fields/tabs/properties manually in the metadata form

This approach works for a small number of schemas, but in my requirement we receive metadata definitions through a CSV file containing many fields and schema configurations.

Requirement:

  • Create multiple custom metadata schemas in bulk
  • Reuse or extend the Default metadata schema
  • Add new tabs and additional metadata properties dynamically
  • Preferably automate through code instead of manual UI configuration

Note: we cannot use any feature provided by ACS commons, how to create custom utility for bulk creation.

Any suggestions, best practices, or Adobe-recommended approaches would be much appreciated.

Thanks in advance.

2 replies

Jineet_Vora
Community Advisor and Adobe Champion
Community Advisor and Adobe Champion
May 27, 2026

This is an interesting use-case.

Haven’t come across any Adobe-recommended approach for this but may be you can create the structure directly in AEM’s JCR e.g. /conf/global/settings/dam/adminui-extension/metadataschema/default/items/tabs/items using a utility.

Provided your CSV file has details of all the metadata tabs, columns and field type then you should be able to create nodes in AEM as below:



This needs to be tested on local machine or non-prod environment after taking backup of existing metadata schema.

avesh_narang
Level 4
May 27, 2026

HI ​@Nagendrababu 

AEM metadata schemas are stored as nodes under:

/conf/global/settings/dam/adminui-extension/metadataschema


Each schema is basically:

  • A folder (schema name)
  • Containing:
    • jcr:content
    • form structure nodes (tabs, fields, etc.)

There is as such OOTB Utility so recommended approach could be Custom AEM Service + CSV Parser 

Build a custom OSGi service that:

  • Uploads/reads CSV file (from DAM or local upload)
  • Parses rows
  • Constructs metadata schema nodes
  • Saves under /conf/.../metadataschema

Implementation Steps :

  1. Define CSV Format (below is sample format)

    schemaName

    tabName

    fieldLabel

    fieldName

    fieldType

    required

  2. Create a servlet to read the CSV File and an OSGI Service to Parse the CSV and create schema nodes 

    @Component(
    service = Servlet.class,
    property = {
    "sling.servlet.paths=/bin/create-metadata-schema",
    "sling.servlet.methods=POST"
    }
    )
    public class MetadataSchemaServlet extends SlingAllMethodsServlet {

    @Reference
    private ResourceResolverFactory resolverFactory;

    protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response)
    throws IOException {

    // Read CSV file from request
    InputStream inputStream = request.getRequestParameter("file").getInputStream();

    // Call OSGI service
    }
    }
  1. Save the session 

And 

If your use case is recurring and large scale:

Build a reusable “Metadata Schema Importer” tool

  • CSV → Schema
  • JSON support later
  • UI + API
  • Reusable across projects

Thanks