Newer Version Available

This content describes an older version of this product. View Latest

Migrate Platform Event Definitions with Metadata API

Deploy and retrieve platform event definitions from your sandbox and production org as part of your app’s development life cycle.

The CustomObject metadata type represents a platform event.

Platform event names are appended with __e. The file that contains the platform event definition has the suffix .object. Platform events are stored in the objects folder.

Example

Here is a definition of a platform event with a number field and two text fields.

1<?xml version="1.0" encoding="UTF-8"?>
2<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
3    <deploymentStatus>Deployed</deploymentStatus>
4    <eventType>HighVolume</eventType>
5    <publishBehavior>PublishAfterCommit</publishBehavior>
6    <fields>
7        <fullName>Ink_Percentage__c</fullName>
8        <externalId>false</externalId>
9        <isFilteringDisabled>false</isFilteringDisabled>
10        <isNameField>false</isNameField>
11        <isSortingDisabled>false</isSortingDisabled>
12        <label>Ink Percentage</label>
13        <precision>18</precision>
14        <required>false</required>
15        <scale>2</scale>
16        <type>Number</type>
17        <unique>false</unique>
18    </fields>
19    <fields>
20        <fullName>Printer_Model__c</fullName>
21        <externalId>false</externalId>
22        <isFilteringDisabled>false</isFilteringDisabled>
23        <isNameField>false</isNameField>
24        <isSortingDisabled>false</isSortingDisabled>
25        <label>Printer Model</label>
26        <length>20</length>
27        <required>false</required>
28        <type>Text</type>
29        <unique>false</unique>
30    </fields>
31    <fields>
32        <fullName>Serial_Number__c</fullName>
33        <externalId>false</externalId>
34        <isFilteringDisabled>false</isFilteringDisabled>
35        <isNameField>false</isNameField>
36        <isSortingDisabled>false</isSortingDisabled>
37        <label>Serial Number</label>
38        <length>20</length>
39        <required>false</required>
40        <type>Text</type>
41        <unique>false</unique>
42    </fields>
43    <label>Low Ink</label>
44    <pluralLabel>Low Ink</pluralLabel>
45</CustomObject>

The eventType field specifies the platform event volume. Only the HighVolume value is supported. The StandardVolume value is deprecated. If you create a platform event with the StandardVolume event type, you get an error.

This package.xml manifest file references the previous event definition. The name of the referenced event is Low_Ink__e.

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>Low_Ink__e</members>
5        <name>CustomObject</name>
6    </types>
7    <version>61.0</version>
8</Package>

Retrieve Platform Events

To retrieve all platform events, in addition to custom objects defined in your org, use the wildcard character (*) for the <members> element, as follows.

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>*</members>
5        <name>CustomObject</name>
6    </types>
7    <version>61.0</version>
8</Package>

To retrieve or deploy triggers associated to a platform event, use the ApexTrigger metadata type. For more information about how to use Metadata API and its types, see the Metadata API Developer Guide.