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

The CustomObject metadata type represents platform events.

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.

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

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>40.0</version>
8</Package>

To retrieve all platform events, 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>40.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.