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.

Example

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

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