@pipedream/salesforce_rest_api 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +92 -0
  2. package/actions/add-contact-to-campaign/add-contact-to-campaign.mjs +25 -25
  3. package/actions/add-lead-to-campaign/add-lead-to-campaign.mjs +25 -24
  4. package/actions/common/base-create-update.mjs +108 -0
  5. package/actions/convert-soap-xml-to-json/convert-soap-xml-to-json.mjs +11 -3
  6. package/actions/create-account/create-account.mjs +33 -36
  7. package/actions/create-attachment/create-attachment.mjs +36 -50
  8. package/actions/create-campaign/create-campaign.mjs +41 -37
  9. package/actions/create-case/create-case.mjs +41 -37
  10. package/actions/create-casecomment/create-casecomment.mjs +26 -38
  11. package/actions/create-contact/create-contact.mjs +38 -35
  12. package/actions/create-event/create-event.mjs +57 -66
  13. package/actions/create-lead/create-lead.mjs +34 -42
  14. package/actions/create-note/create-note.mjs +24 -43
  15. package/actions/create-opportunity/create-opportunity.mjs +38 -47
  16. package/actions/create-record/create-record.mjs +49 -15
  17. package/actions/create-task/create-task.mjs +50 -42
  18. package/actions/create-user/create-user.mjs +33 -196
  19. package/actions/delete-opportunity/delete-opportunity.mjs +17 -13
  20. package/actions/delete-record/delete-record.mjs +18 -16
  21. package/actions/find-records/find-records.mjs +41 -26
  22. package/actions/insert-blob-data/insert-blob-data.mjs +3 -7
  23. package/actions/post-feed-to-chatter/post-feed-to-chatter.mjs +45 -20
  24. package/actions/search-string/search-string.mjs +22 -20
  25. package/actions/soql-search/soql-search.mjs +13 -8
  26. package/actions/sosl-search/sosl-search.mjs +19 -9
  27. package/actions/update-account/update-account.mjs +54 -41
  28. package/actions/update-contact/update-contact.mjs +59 -40
  29. package/actions/update-opportunity/update-opportunity.mjs +56 -54
  30. package/actions/update-record/update-record.mjs +67 -20
  31. package/common/all-sobjects.mjs +3812 -0
  32. package/common/constants-props.mjs +1539 -0
  33. package/common/props-async-options.mjs +154 -0
  34. package/common/props-utils.mjs +88 -31
  35. package/common/sobjects/account.mjs +349 -22
  36. package/common/sobjects/attachment.mjs +56 -17
  37. package/common/sobjects/campaign.mjs +125 -23
  38. package/common/sobjects/case.mjs +193 -13
  39. package/common/sobjects/caseComment.mjs +28 -4
  40. package/common/sobjects/contact.mjs +207 -43
  41. package/common/sobjects/event.mjs +218 -18
  42. package/common/sobjects/lead.mjs +245 -22
  43. package/common/sobjects/note.mjs +37 -14
  44. package/common/sobjects/opportunity.mjs +148 -22
  45. package/common/sobjects/task.mjs +240 -19
  46. package/common/sobjects/user.mjs +965 -0
  47. package/package.json +2 -2
  48. package/salesforce_rest_api.app.mjs +72 -249
  49. package/sources/common-webhook-methods.mjs +71 -0
  50. package/sources/common.mjs +85 -22
  51. package/sources/new-outbound-message/new-outbound-message.mjs +11 -3
  52. package/sources/new-record-instant/new-record-instant.mjs +77 -6
  53. package/sources/record-deleted-instant/record-deleted-instant.mjs +40 -5
  54. package/sources/record-updated-instant/record-updated-instant.mjs +137 -5
  55. package/actions/common/base.mjs +0 -18
  56. package/actions/find-create-record/find-create-record.mjs +0 -89
  57. package/actions/get-sobject-fields-values/get-sobject-fields-values.mjs +0 -57
  58. package/common/utils.mjs +0 -51
  59. package/sources/common-instant.mjs +0 -146
  60. package/sources/new-record/new-record.mjs +0 -91
  61. package/sources/record-deleted/record-deleted.mjs +0 -51
  62. package/sources/record-updated/record-updated.mjs +0 -94
  63. package/sources/updated-field-on-record/updated-field-on-record.mjs +0 -161
  64. package/sources/updated-field-on-record-instant/updated-field-on-record-instant.mjs +0 -76
@@ -0,0 +1,154 @@
1
+ // Note: the arrow function syntax is required when calling from within additionalProps,
2
+ // whereas when using regular props, the standard method syntax is needed instead.
3
+ // These props are more commonly used in additionalProps, so all are defined as such,
4
+ // and the options method needs to be redefined if used in regular props.
5
+
6
+ import allSobjects from "./all-sobjects.mjs";
7
+
8
+ const findSobjectOptions = (objName) => {
9
+ return allSobjects.find(({ name }) => name === objName)?.getRecords;
10
+ };
11
+
12
+ export default {
13
+ AccountId: {
14
+ type: "string",
15
+ label: "Account ID",
16
+ description: "The ID of an Account.",
17
+ options: findSobjectOptions("Account"),
18
+ },
19
+ BusinessHoursId: {
20
+ type: "string",
21
+ label: "Business Hours ID",
22
+ description: "The ID of a Business Hours record.",
23
+ options: findSobjectOptions("BusinessHours"),
24
+ },
25
+ CallCenterId: {
26
+ type: "string",
27
+ label: "Call Center ID",
28
+ description: "The ID of a Call Center.",
29
+ options: findSobjectOptions("CallCenter"),
30
+ },
31
+ CampaignId: {
32
+ type: "string",
33
+ label: "Campaign ID",
34
+ description: "The ID of a Campaign.",
35
+ options: findSobjectOptions("Campaign"),
36
+ },
37
+ CaseId: {
38
+ type: "string",
39
+ label: "Case ID",
40
+ description: "The ID of a Case.",
41
+ options: findSobjectOptions("Case"),
42
+ },
43
+ CommunityId: {
44
+ type: "string",
45
+ label: "Community ID",
46
+ description: "The ID of a Community (Zone) record.",
47
+ options: () =>
48
+ this.salesforce.listRecordOptions({
49
+ objType: "Community",
50
+ nameField: "Name",
51
+ }),
52
+ },
53
+ ContactId: {
54
+ type: "string",
55
+ label: "Contact ID",
56
+ description: "The ID of a Contact.",
57
+ options: findSobjectOptions("Contact"),
58
+ },
59
+ ContractId: {
60
+ type: "string",
61
+ label: "Contract ID",
62
+ description: "The ID of a Contract.",
63
+ options: findSobjectOptions("Contract"),
64
+ },
65
+ ContactOrLeadIds: {
66
+ type: "string[]",
67
+ label: "Contact or Lead IDs",
68
+ description: "The IDs of Contacts or Leads.",
69
+ options: async () => {
70
+ const contacts = await this.salesforce.listRecordOptions({
71
+ objType: "Contact",
72
+ nameField: "Name",
73
+ });
74
+ const leads = await this.salesforce.listRecordOptions({
75
+ objType: "Lead",
76
+ nameField: "Name",
77
+ });
78
+ return [
79
+ ...(contacts ?? []),
80
+ ...(leads ?? []),
81
+ ];
82
+ },
83
+ },
84
+ IndividualId: {
85
+ type: "string",
86
+ label: "Individual ID",
87
+ description: "The ID of an Individual.",
88
+ options: findSobjectOptions("Individual"),
89
+ },
90
+ LeadId: {
91
+ type: "string",
92
+ label: "Lead ID",
93
+ description: "The ID of a Lead.",
94
+ options: findSobjectOptions("Lead"),
95
+ },
96
+ OperatingHoursId: {
97
+ type: "string",
98
+ label: "Operating Hours ID",
99
+ description: "The ID of an Operating Hours record.",
100
+ options: findSobjectOptions("OperatingHours"),
101
+ },
102
+ OpportunityId: {
103
+ type: "string",
104
+ label: "Opportunity ID",
105
+ description: "The ID of an Opportunity.",
106
+ options: findSobjectOptions("Opportunity"),
107
+ },
108
+ Pricebook2Id: {
109
+ type: "string",
110
+ label: "Pricebook2 ID",
111
+ description: "The ID of a Pricebook2 record.",
112
+ options: findSobjectOptions("Pricebook2"),
113
+ },
114
+ ProfileId: {
115
+ type: "string",
116
+ label: "Profile ID",
117
+ description: "The ID of a Profile.",
118
+ options: findSobjectOptions("Profile"),
119
+ },
120
+ ServiceContractId: {
121
+ type: "string",
122
+ label: "ServiceContract ID",
123
+ description: "The ID of a Service Contract record.",
124
+ options: findSobjectOptions("ServiceContract"),
125
+ },
126
+ UserId: {
127
+ type: "string",
128
+ label: "User ID",
129
+ description: "The ID of a User in your organization.",
130
+ options: findSobjectOptions("User"),
131
+ },
132
+ UserRoleId: {
133
+ type: "string",
134
+ label: "User Role ID",
135
+ description: "The ID of a User Role record.",
136
+ options: findSobjectOptions("UserRole"),
137
+ },
138
+ QuestionId: {
139
+ type: "string",
140
+ label: "Question ID",
141
+ description: "The ID of a Question.",
142
+ options: () =>
143
+ this.salesforce.listRecordOptions({
144
+ objType: "Question",
145
+ nameField: "Title",
146
+ }),
147
+ },
148
+ RecordTypeId: {
149
+ type: "string",
150
+ label: "Record Type ID",
151
+ description: "ID of the record type assigned to this record.",
152
+ options: findSobjectOptions("RecordType"),
153
+ },
154
+ };
@@ -1,38 +1,95 @@
1
- function toCapitalCase(str) {
2
- return str
3
- .split(" ")
4
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
5
- .join("");
6
- }
1
+ import allSobjects from "./all-sobjects.mjs";
7
2
 
8
- function filterProps(props) {
9
- if (!props) {
10
- return;
11
- }
3
+ export function getAdditionalFields() {
12
4
  return Object.fromEntries(
13
- Object.entries(props)
14
- .filter(([
15
- key,
16
- value,
17
- ]) => typeof (value) !== "function"
18
- && ![
19
- "app",
20
- "salesforce",
21
- ].includes(key)),
22
- );
23
- }
24
-
25
- function keysToCapitalCase(data = {}) {
26
- return Object.entries(filterProps(data))
27
- .reduce((acc, [
5
+ Object.entries(this.additionalFields ?? {}).map(([
28
6
  key,
29
7
  value,
30
- ]) => ({
31
- ...acc,
32
- [toCapitalCase(key)]: value,
33
- }), {});
8
+ ]) => {
9
+ try {
10
+ return [
11
+ key,
12
+ JSON.parse(value),
13
+ ];
14
+ } catch (err) {
15
+ return [
16
+ key,
17
+ value,
18
+ ];
19
+ }
20
+ }),
21
+ );
34
22
  }
35
23
 
36
- export default {
37
- keysToCapitalCase,
24
+ export const convertFieldsToProps = (fields) => {
25
+ const getFieldPropType = (fieldType) => {
26
+ // https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/field_types.htm
27
+ switch (fieldType) {
28
+ case "boolean":
29
+ return "boolean";
30
+ case "int":
31
+ return "integer";
32
+ case "multipicklist":
33
+ return "string[]";
34
+ default:
35
+ return "string";
36
+ }
37
+ };
38
+
39
+ return fields
40
+ .map((field) => {
41
+ const { type } = field;
42
+ const prop = {
43
+ type: getFieldPropType(type),
44
+ label: field.name,
45
+ description: `Field type: \`${type}\``,
46
+ };
47
+ if ([
48
+ "date",
49
+ "datetime",
50
+ ].includes(type)) {
51
+ prop.description = `This is a \`${type}\` field. [See the documentation](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_valid_date_formats.htm) for the expected format.`;
52
+ } else if (
53
+ [
54
+ "picklist",
55
+ "multipicklist",
56
+ ].includes(type) &&
57
+ field.picklistValues?.length
58
+ ) {
59
+ prop.description = `Select ${
60
+ type === "picklist"
61
+ ? "a value"
62
+ : "one or more values"
63
+ } from the list.`;
64
+ prop.options = field.picklistValues.map(({
65
+ label, value,
66
+ }) => ({
67
+ label,
68
+ value,
69
+ }));
70
+ } else if (type === "reference") {
71
+ if (field.referenceTo?.length === 1) {
72
+ const objName = field.referenceTo[0];
73
+ prop.description = `The ID of a${
74
+ objName.startsWith("A")
75
+ ? "n"
76
+ : ""
77
+ } \`${objName}\` record.`;
78
+ const optionsFn = allSobjects.find(
79
+ ({ name }) => name === objName,
80
+ )?.getRecords;
81
+ if (optionsFn) prop.options = optionsFn;
82
+ } else if (field.referenceTo?.length > 1) {
83
+ prop.description = `The ID of a record of one of these object types: ${field.referenceTo
84
+ .map((s) => `\`${s}\``)
85
+ .join(", ")}`;
86
+ }
87
+ }
88
+
89
+ return prop;
90
+ })
91
+ .reduce((obj, prop) => {
92
+ obj[prop.label] = prop;
93
+ return obj;
94
+ }, {});
38
95
  };
@@ -1,27 +1,354 @@
1
+ import {
2
+ CLEAN_STATUS_OPTIONS, GEOCODE_ACCURACY_OPTIONS, RECORD_SOURCE_OPTIONS,
3
+ } from "../constants-props.mjs";
4
+ import commonProps from "../props-async-options.mjs";
5
+
1
6
  export default {
2
- AccountNumber: {
3
- type: "string",
4
- label: "Account Number",
5
- description: "Account number assigned to this account (not the unique, system-generated ID assigned during creation). Maximum size is 40 characters.",
7
+ createProps: {
8
+ Name: {
9
+ type: "string",
10
+ label: "Account Name",
11
+ description: "Name of the account. Max 255 characters.",
12
+ },
6
13
  },
7
- AccountSource: {
8
- type: "string",
9
- label: "Account Source",
10
- description: "The source of the account record. For example, Advertisement, Data.com, or Trade Show. The source is selected from a picklist of available values, which are set by an administrator in Salesforce. Each picklist value can have up to 40 characters.",
14
+ initialProps: {
15
+ AccountNumber: {
16
+ type: "string",
17
+ label: "Account Number",
18
+ description:
19
+ "Account number assigned to this account (not the unique, system-generated ID assigned during creation). Max 40 characters.",
20
+ optional: true,
21
+ },
22
+ Description: {
23
+ type: "string",
24
+ label: "Description",
25
+ description: "Text description of the account. Limited to 32,000 KB.",
26
+ optional: true,
27
+ },
28
+ Phone: {
29
+ type: "string",
30
+ label: "Phone",
31
+ description: "Phone number for this account. Max 40 characters.",
32
+ optional: true,
33
+ },
34
+ Website: {
35
+ type: "string",
36
+ label: "Website",
37
+ description: "The website of this account. Max 255 characters.",
38
+ optional: true,
39
+ },
11
40
  },
12
- AnnualRevenue: {
13
- type: "string",
14
- label: "Annual Revenue",
15
- description: "Estimated annual revenue of the account.",
16
- },
17
- BillingCity: {
18
- type: "string",
19
- label: "Billing City",
20
- description: "Details for the billing address of this account. Maximum size is 40 characters.",
21
- },
22
- BillingCountry: {
23
- type: "string",
24
- label: "Billing Country",
25
- description: "Details for the billing address of this account. Maximum size is 80 characters.",
41
+ extraProps: {
42
+ OperatingHoursId: {
43
+ ...commonProps.OperatingHoursId,
44
+ description: "The operating hours associated with the account.",
45
+ optional: true,
46
+ },
47
+ OwnerId: {
48
+ ...commonProps.UserId,
49
+ label: "Owner ID",
50
+ description: "The ID of the user who currently owns this account (defaults to the user logged in).",
51
+ optional: true,
52
+ },
53
+ ParentId: {
54
+ ...commonProps.AccountId,
55
+ label: "Parent Account ID",
56
+ description: "ID of the parent account, if any.",
57
+ optional: true,
58
+ },
59
+ RecordTypeId: {
60
+ ...commonProps.RecordTypeId,
61
+ optional: true,
62
+ },
63
+ AccountSource: {
64
+ type: "string",
65
+ label: "Account Source",
66
+ description:
67
+ "The source of the account record. Available values are set by an administrator.",
68
+ optional: true,
69
+ options: RECORD_SOURCE_OPTIONS,
70
+ },
71
+ AnnualRevenue: {
72
+ type: "string",
73
+ label: "Annual Revenue",
74
+ description: "Estimated annual revenue of the account.",
75
+ optional: true,
76
+ },
77
+ BillingCity: {
78
+ type: "string",
79
+ label: "Billing City",
80
+ description: "Max 40 characters.",
81
+ optional: true,
82
+ },
83
+ BillingCountry: {
84
+ type: "string",
85
+ label: "Billing Country",
86
+ description: "Max 80 characters.",
87
+ optional: true,
88
+ },
89
+ BillingGeocodeAccuracy: {
90
+ type: "string",
91
+ label: "Billing Geocode Accuracy",
92
+ description: "Accuracy level of the geocode for the billing address.",
93
+ optional: true,
94
+ options: GEOCODE_ACCURACY_OPTIONS,
95
+ },
96
+ BillingLatitude: {
97
+ type: "string",
98
+ label: "Billing Latitude",
99
+ description:
100
+ "A number between -90 and 90 with up to 15 decimal places. Use with `Billing Longitude` to specify the precise geolocation of a billing address.",
101
+ optional: true,
102
+ },
103
+ BillingLongitude: {
104
+ type: "string",
105
+ label: "Billing Longitude",
106
+ description:
107
+ "A number between -180 and 180 with up to 15 decimal places. Use with `Billing Latitude` to specify the precise geolocation of a billing address.",
108
+ optional: true,
109
+ },
110
+ BillingPostalCode: {
111
+ type: "string",
112
+ label: "Billing Zip/Postal Code",
113
+ description: "Max 20 characters.",
114
+ optional: true,
115
+ },
116
+ BillingState: {
117
+ type: "string",
118
+ label: "Billing State/Province",
119
+ description: "Max 80 characters.",
120
+ optional: true,
121
+ },
122
+ BillingStreet: {
123
+ type: "string",
124
+ label: "Billing Street",
125
+ description: "Street address for the billing address of this account.",
126
+ optional: true,
127
+ },
128
+ CleanStatus: {
129
+ type: "string",
130
+ label: "Clean Status",
131
+ description:
132
+ "Indicates the record's clean status as compared with Data.com.",
133
+ optional: true,
134
+ options: CLEAN_STATUS_OPTIONS,
135
+ },
136
+ DunsNumber: {
137
+ type: "string",
138
+ label: "D-U-N-S Number",
139
+ description: "Unique 9-digit number (Data Universal Numbering System).",
140
+ optional: true,
141
+ },
142
+ Fax: {
143
+ type: "string",
144
+ label: "Account Fax",
145
+ description: "Fax number for the account.",
146
+ optional: true,
147
+ },
148
+ HasOptedOutOfEmail: {
149
+ type: "boolean",
150
+ label: "Email Opt Out",
151
+ description: "Indicates whether the contact doesn't want to receive email from Salesforce (true) or does (false)",
152
+ optional: true,
153
+ },
154
+ Industry: {
155
+ type: "string",
156
+ label: "Industry",
157
+ description:
158
+ "An industry associated with this account. Max 40 characters.",
159
+ optional: true,
160
+ },
161
+ IsPriorityRecord: {
162
+ type: "boolean",
163
+ label: "Is Priority Record",
164
+ description:
165
+ "Shows whether the user has marked the account as important.",
166
+ optional: true,
167
+ },
168
+ NaicsCode: {
169
+ type: "string",
170
+ label: "NAICS Code",
171
+ description:
172
+ "6-digit code (North American Industry Classification System)",
173
+ optional: true,
174
+ },
175
+ NaicsDesc: {
176
+ type: "string",
177
+ label: "NAICS Description",
178
+ description:
179
+ "A brief description of an org's line of business, based on its NAICS code. Max 120 characters.",
180
+ optional: true,
181
+ },
182
+ NumberOfEmployees: {
183
+ type: "integer",
184
+ label: "Employees",
185
+ description:
186
+ "Number of employees working at the company represented by this account.",
187
+ max: 99999999,
188
+ optional: true,
189
+ },
190
+ Ownership: {
191
+ type: "string",
192
+ label: "Ownership",
193
+ description: "Ownership type for the account.",
194
+ optional: true,
195
+ options: [
196
+ "Public",
197
+ "Private",
198
+ "Subsidiary",
199
+ "Other",
200
+ ],
201
+ },
202
+ PersonIndividualId: {
203
+ type: "string",
204
+ label: "Person Individual ID",
205
+ description: "ID of the data privacy record associated with this person's account.",
206
+ optional: true,
207
+ },
208
+ Rating: {
209
+ type: "string",
210
+ label: "Account Rating",
211
+ description: "The account's prospect rating.",
212
+ optional: true,
213
+ options: [
214
+ "Hot",
215
+ "Warm",
216
+ "Cold",
217
+ ],
218
+ },
219
+ ShippingCity: {
220
+ type: "string",
221
+ label: "Shipping City",
222
+ description: "Max 40 characters.",
223
+ optional: true,
224
+ },
225
+ ShippingCountry: {
226
+ type: "string",
227
+ label: "Shipping Country",
228
+ description: "Max 80 characters.",
229
+ optional: true,
230
+ },
231
+ ShippingGeocodeAccuracy: {
232
+ type: "string",
233
+ label: "Shipping Geocode Accuracy",
234
+ description: "Accuracy level of the geocode for the shipping address.",
235
+ optional: true,
236
+ options: [
237
+ {
238
+ label: "Address",
239
+ value: "Address",
240
+ },
241
+ {
242
+ label: "Near Address",
243
+ value: "NearAddress",
244
+ },
245
+ {
246
+ label: "Block",
247
+ value: "Block",
248
+ },
249
+ {
250
+ label: "Street",
251
+ value: "Street",
252
+ },
253
+ {
254
+ label: "Extended Zip",
255
+ value: "ExtendedZip",
256
+ },
257
+ {
258
+ label: "Zip",
259
+ value: "Zip",
260
+ },
261
+ ],
262
+ },
263
+ ShippingLatitude: {
264
+ type: "string",
265
+ label: "Shipping Latitude",
266
+ description:
267
+ "A number between -90 and 90 with up to 15 decimal places. Use with `Shipping Longitude` to specify the precise geolocation of a shipping address.",
268
+ optional: true,
269
+ },
270
+ ShippingLongitude: {
271
+ type: "string",
272
+ label: "Shipping Longitude",
273
+ description:
274
+ "A number between -180 and 180 with up to 15 decimal places. Use with `Shipping Latitude` to specify the precise geolocation of a shipping address.",
275
+ optional: true,
276
+ },
277
+ ShippingPostalCode: {
278
+ type: "string",
279
+ label: "Shipping Zip/Postal Code",
280
+ description: "Max 20 characters.",
281
+ optional: true,
282
+ },
283
+ ShippingState: {
284
+ type: "string",
285
+ label: "Shipping State/Province",
286
+ description: "Max 80 characters.",
287
+ optional: true,
288
+ },
289
+ ShippingStreet: {
290
+ type: "string",
291
+ label: "Shipping Street",
292
+ description:
293
+ "The street address of the shipping address for this account. Max 255 characters.",
294
+ optional: true,
295
+ },
296
+ Sic: {
297
+ type: "string",
298
+ label: "SIC Code",
299
+ description:
300
+ "Standard Industrial Classification code of the company's main business categorization, for example, 57340 for Electronics. Max 20 characters.",
301
+ optional: true,
302
+ },
303
+ SicDesc: {
304
+ type: "string",
305
+ label: "SIC Description",
306
+ description:
307
+ "A brief description of an org's line of business, based on its SIC code. Max 80 characters.",
308
+ optional: true,
309
+ },
310
+ Site: {
311
+ type: "string",
312
+ label: "Account Site",
313
+ description:
314
+ "Name of the account's location, for example Headquarters or London. Max 80 characters.",
315
+ optional: true,
316
+ },
317
+ TickerSymbol: {
318
+ type: "string",
319
+ label: "Ticker Symbol",
320
+ description:
321
+ "The stock market symbol for this account. Maximum of 20 characters.",
322
+ optional: true,
323
+ },
324
+ Tradestyle: {
325
+ type: "string",
326
+ label: "Tradestyle",
327
+ description:
328
+ "A name, different from its legal name, that an org may use for conducting business. Similar to “Doing business as” or “DBA”. Max 255 characters.",
329
+ optional: true,
330
+ },
331
+ Type: {
332
+ type: "string",
333
+ label: "Account Type",
334
+ description: "Type of account.",
335
+ optional: true,
336
+ options: [
337
+ "Prospect",
338
+ "Customer - Direct",
339
+ "Customer - Channel",
340
+ "Channel Partner / Reseller",
341
+ "Installation Partner",
342
+ "Technology Partner",
343
+ "Other",
344
+ ],
345
+ },
346
+ YearStarted: {
347
+ type: "string",
348
+ label: "Year Started",
349
+ description:
350
+ "The year when an org was legally established. Max 4 characters",
351
+ optional: true,
352
+ },
26
353
  },
27
354
  };