Toggle Side Panel

  • Blogs
  • Consultants
    • Salesforce Product Expertise
      • Top Salesforce ConsultantsTop Salesforce Consultants
      • Marketing Cloud ConsultantsMarketing Cloud Consultants
      • Service Cloud ConsultantsService Cloud Consultants
      • Experience Cloud ConsultantsExperience Cloud Consultants
      • Analytics Cloud ConsultantsAnalytics Cloud Consultants
    • Salesforce Industry Expertise
      • Non-Profit Cloud ConsultantsNon-Profit Cloud Consultants
      • Financial Service Cloud ConsultantsFinancial Service Cloud Consultants
      • Health Cloud ConsultantsHealth Cloud Consultants
      • Commerce Cloud ConsultantsCommerce Cloud Consultants
      • Manufacturing Cloud ConsultantsManufacturing Cloud Consultants
    • Salesforce Experts by Location
      • USATop Salesforce Consultants in USA
      • IndiaTop Salesforce Consultants in India
      • AustraliaTop Salesforce Consultants in Australia
      • United KingdomTop Salesforce Consultants in UK
      • CanadaTop Salesforce Consultants in Canada
  • Webinars
  • Contact Us
  • Discussions
More options
    Sign in Sign up
    • Blogs
    • Consultants
      • Salesforce Product Expertise
        • Top Salesforce ConsultantsTop Salesforce Consultants
        • Marketing Cloud ConsultantsMarketing Cloud Consultants
        • Service Cloud ConsultantsService Cloud Consultants
        • Experience Cloud ConsultantsExperience Cloud Consultants
        • Analytics Cloud ConsultantsAnalytics Cloud Consultants
      • Salesforce Industry Expertise
        • Non-Profit Cloud ConsultantsNon-Profit Cloud Consultants
        • Financial Service Cloud ConsultantsFinancial Service Cloud Consultants
        • Health Cloud ConsultantsHealth Cloud Consultants
        • Commerce Cloud ConsultantsCommerce Cloud Consultants
        • Manufacturing Cloud ConsultantsManufacturing Cloud Consultants
      • Salesforce Experts by Location
        • USATop Salesforce Consultants in USA
        • IndiaTop Salesforce Consultants in India
        • AustraliaTop Salesforce Consultants in Australia
        • United KingdomTop Salesforce Consultants in UK
        • CanadaTop Salesforce Consultants in Canada
    • Webinars
    • Contact Us
    • Discussions
    Close search

    Activity › Forums › Salesforce® Discussions › How can I create custom object using the Metadata API from Apex?

    Tagged: Metadata API, MetadataService, Salesforce Apex Class, Salesforce Custom Object

    • Salesforce® Discussions

      How can I create custom object using the Metadata API from Apex?

      Posted by Piyush on April 29, 2016 at 7:54 AM

      How can I create custom object using the Metadata API from Apex class?

       

      Gourav replied 10 years, 5 months ago 4 Members · 6 Replies
      • Metadata API
      • MetadataService
      • Salesforce Apex Class
      • Salesforce Custom Object
    • 6 Replies
    • Naman

      Member
      April 29, 2016 at 7:58 AM

      Go through http://salesforce.stackexchange.com/questions/20763/creating-a-custom-object-using-rest-api

    • [adinserter block='9']
    • Gourav

      Member
      April 29, 2016 at 7:59 AM

      Use this code in your Apex class to create custom Object :-

       

      MetadataService.CustomObject customObject = new MetadataService.CustomObject();
      customObject.fullName = 'Test__c';
      customObject.label = 'Test';
      customObject.pluralLabel = 'Tests';
      customObject.nameField = new MetadataService.CustomField();
      customObject.nameField.type_x = 'Text';
      customObject.nameField.label = 'Test Record';
      customObject.deploymentStatus = 'Deployed';
      customObject.sharingModel = 'ReadWrite';
      MetadataService.AsyncResult[] results = service.create(new List<MetadataService.Metadata> { customObject });

    • shafali

      Member
      April 29, 2016 at 8:06 AM

      Hi Piyush,

      Try this:

      HTTP h = new HTTP();
      HTTPRequest req = new HTTPRequest();
      req.setMethod('POST');
      req.setHeader('Content-Type', 'text/xml');
      req.setHeader('SOAPAction', 'create');

      String b = '<?xml version="1.0" encoding="UTF-8"?>';
      b += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">';
      b += '<soapenv:Header>';
      b += '<ns1:SessionHeader soapenv:mustUnderstand="0" xmlns:ns1="http://soap.sforce.com/2006/04/metadata">';
      b += '<ns1:sessionId>' + UserInfo.getSessionId() + '</ns1:sessionId>';
      b += '</ns1:SessionHeader>';
      b += '</soapenv:Header>';
      b += '<soapenv:Body>';
      b += '<create xmlns="http://soap.sforce.com/2006/04/metadata">';
      b += '<metadata xsi:type="ns2:CustomObject" xmlns:ns2="http://soap.sforce.com/2006/04/metadata">';
      b += '<fullName>sample__c</fullName>';
      b += '<deploymentStatus>Deployed</deploymentStatus>';
      b += '<description>created by the Metadata API</description>';
      b += '<enableActivities>true</enableActivities>';
      b += '<label>sample Object</label>';
      b += '<nameField>';
      b += '<displayFormat>AN-{0000}</displayFormat>';
      b += '<label>sample__c Name</label>';
      b += '<type>AutoNumber</type>';
      b += '</nameField>';
      b += '<pluralLabel>sample Objects</pluralLabel>';
      b += '<sharingModel>ReadWrite</sharingModel>';
      b += '</metadata>';
      b += '</create>';
      b += '</soapenv:Body>';
      b += '</soapenv:Envelope>';

      req.setBody(b);
      req.setCompressed(false);
      req.setEndpoint('https://na12-api.salesforce.com/services/Soap/m/25.0');
      HTTPResponse resp = h.send(req);
      System.debug(resp.getBody());

    • Piyush

      Member
      April 29, 2016 at 8:10 AM

      @Gourav when i execute this sample of the code I am getting error Invalid type: MetadataService.CustomObject

    • Piyush

      Member
      April 29, 2016 at 8:15 AM

      Thanks all it really helpful for me.

    • Gourav

      Member
      April 29, 2016 at 9:10 AM

      @Piyush

      you need to import all the classes from the metadata sample to get this workfing..
      also your MetadataServiceExamples class should have all the methods to run.. your createObject method is calling createService method which is missing..

      check this for all the classes in metadata sample and add them to your org
      https://github.com/financialforcedev/apex-mdapi/tree/master/apex-mdapi/src/classes

      and this is for the MetadataServiceExample class
      https://github.com/financialforcedev/apex-mdapi/blob/master/apex-mdapi/src/classes/MetadataServiceExamples.cls

    Log In to reply.

    • Public
    • All Members
    • My Connections
    • Only Me
    • Public
    • All Members
    • My Connections
    • Only Me
    • Public
    • All Members
    • My Connections
    • Only Me

    Popular Salesforce Blogs

    Lightning Tutorial

    File Upload in Lightning Web Component | Salesforce Lightning Tutorial

    Blog in Lightning

    Users can upload many files quickly and easily with the lightning-file-upload component. Drag and drop capabilities and file type filters are also available in the…

    Cloud Community, Community File, Components, Create Custom Components, Custom Components
    NARENDRA Jan 2, 2023
    4,033  Views

    Types of Salesforce Support (Customer Success) Plans You’ll See out in the Wild

    Blog in Salesforce

    Customer success is when the customers can achieve their desired business outcomes by leveraging the Salesforce platform. Providing a suitable customer success plan means providing…

    Business Growth, Business Outcomes, Business Requirements, Business Value, Community Advice
    360 Degree May 28, 2021
    3,605  Views
    salesforce data integration

    Salesforce Tips and Tricks for Data Integration

    Blog in Data, Salesforce integration

    User experience is one of the most important aspects of any prominent business endeavor. However, to keep your consumers satisfied with your service or product…

    Business Endeavor, Business Owners, Business Professionals, Custom Object Records, Customer Relations Management
    Alice Jul 16, 2020
    4,050  Views
    Footer Forcetalks logo

    support@forcetalks.com

    • twitterx

    Quick Links

    Advertise with Us

    Salesforce® Articles

    Dreamforce 2023

    Top Salesforce® Bloggers 2023

    Top Salesforce Consultants

    Get Listed

    Company

    Contact Us

    About Us

    Privacy Policy

    Terms & Conditions

    InsightHub

    Salesforce Blogs

    Salesforce Videos

    Salesforce Groups

    Salesforce Jobs

    © 2026 - Forcetalks ● All Rights Reserved

    Salesforce® is a trademark of Salesforce® Inc. No claim is made to the exclusive right to use “Salesforce”. Any services offered within the Forcetalks website/app are not sponsored or endorsed by Salesforce®.

    We use cookies to enhance your browsing experience. Please see our privacy policy if you'd like more information on our use of cookies.