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 or a high-volume platform event (pilot).

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>StandardVolume</eventType>
5    <fields>
6        <fullName>Ink_Percentage__c</fullName>
7        <externalId>false</externalId>
8        <isFilteringDisabled>false</isFilteringDisabled>
9        <isNameField>false</isNameField>
10        <isSortingDisabled>false</isSortingDisabled>
11        <label>Ink Percentage</label>
12        <precision>18</precision>
13        <required>false</required>
14        <scale>2</scale>
15        <type>Number</type>
16        <unique>false</unique>
17    </fields>
18    <fields>
19        <fullName>Printer_Model__c</fullName>
20        <externalId>false</externalId>
21        <isFilteringDisabled>false</isFilteringDisabled>
22        <isNameField>false</isNameField>
23        <isSortingDisabled>false</isSortingDisabled>
24        <label>Printer Model</label>
25        <length>20</length>
26        <required>false</required>
27        <type>Text</type>
28        <unique>false</unique>
29    </fields>
30    <fields>
31        <fullName>Serial_Number__c</fullName>
32        <externalId>false</externalId>
33        <isFilteringDisabled>false</isFilteringDisabled>
34        <isNameField>false</isNameField>
35        <isSortingDisabled>false</isSortingDisabled>
36        <label>Serial Number</label>
37        <length>20</length>
38        <required>false</required>
39        <type>Text</type>
40        <unique>false</unique>
41    </fields>
42    <label>Low Ink</label>
43    <pluralLabel>Low Ink</pluralLabel>
44</CustomObject>

The definition of a high-volume platform event is similar to that of a platform event. The only difference is the value of the eventType field, which is set to HighVolume.

1<eventType>HighVolume</eventType>

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>43.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>43.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.