My admittedly basic understanding of how Salesforce works is that everything is defined in metadata. If I create an app, that's defined in App_Name.app-meta.xml. If I add a page to it, that creates a few files, Page_Name.flexipage-meta.xml and Page_Name.tab-meta.xml. I can then include these in my local project folder and deploy the app as-built to a new org.

Is this true of everything? I've used the Setup interface to create a Change Data Capture for a custom object, but can't find the metadata for it. Does one exist? If not, does this mean that to deploy an app that requires it I need to manually configure the new org's Change Data Capture each time?


Regarding your “True of everything?” question - No. Some changes are “Unsupported Metadata” which may vary depending on Salesforce’s roadmap and when you read this.

Try the PlatformEventChannel metadata for Change Data Capture config. See https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_platformeventchannel.htm

Most setup menu changes can be handled via the metadata api assuming its "Supported Metadata".

  • Thanks, but either I'm looking in the wrong place, or that isn't it. I am using VS Code with the Salesforce extensions, and had already downloaded the custom object metadata file. I did see a tag in there for enableStreamingApi, but I took the custom object out of the CDC list and re-downloaded the file (using the org metadata browser). It hadn't changed.
    – Chuck
    Apr 28 at 2:07
  • Oh, ok. I've updated the answer. Apr 28 at 2:18
  • Thanks so much! Strangly it was actually Platform Event Channel Members, and there was no Platform Event Channel metadata.
    – Chuck
    Apr 28 at 21:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.