Skip to content

Latest commit

 

History

History
2346 lines (1732 loc) · 90.2 KB

File metadata and controls

2346 lines (1732 loc) · 90.2 KB

zapier-platform-schema Generated Documentation

This is automatically generated by the npm run docs command in zapier-platform-schema version 15.19.0.


Index


/AppFlagsSchema

Codifies high-level options for your integration.

Details

Properties

Key Required Type Description
skipHttpPatch no boolean By default, Zapier patches the core http module so that all requests (including those from 3rd-party SDKs) can be logged. Set this to true if you're seeing issues using an SDK (such as AWS).
skipThrowForStatus no boolean Starting in core version 10.0.0, response.throwForStatus() was called by default. We introduced a per-request way to opt-out of this behavior. This flag takes that a step further and controls that behavior integration-wide for requests made using z.request(). Unless they specify otherwise (per-request, or via middleware), Shorthand requests always call throwForStatus(). z.request() calls can also ignore this flag if they set skipThrowForStatus directly

Examples

  • { skipHttpPatch: true, skipThrowForStatus: false }
  • { skipHttpPatch: false, skipThrowForStatus: true }
  • {}

Anti-Examples

  • { foo: true } - Invalid key.
  • { skipHttpPatch: 'yes' } - Invalid value.
  • { skipThrowForStatus: 'no' } - Invalid value.

/AppSchema

Represents a full app.

Details

Properties

Key Required Type Description
version yes /VersionSchema A version identifier for your code.
platformVersion yes /VersionSchema A version identifier for the Zapier execution environment.
beforeApp no /MiddlewaresSchema EXPERIMENTAL: Before the perform method is called on your app, you can modify the execution context.
afterApp no /MiddlewaresSchema EXPERIMENTAL: After the perform method is called on your app, you can modify the response.
authentication no /AuthenticationSchema Choose what scheme your API uses for authentication.
requestTemplate no /RequestSchema Define a request mixin, great for setting custom headers, content-types, etc.
beforeRequest no /MiddlewaresSchema Before an HTTP request is sent via our z.request() client, you can modify it.
afterResponse no /MiddlewaresSchema After an HTTP response is recieved via our z.request() client, you can modify it.
hydrators no /HydratorsSchema An optional bank of named functions that you can use in z.hydrate('someName') to lazily load data.
resources no /ResourcesSchema All the resources for your app. Zapier will take these and generate the relevent triggers/searches/creates automatically.
triggers no /TriggersSchema All the triggers for your app. You can add your own here, or Zapier will automatically register any from the list/hook methods on your resources.
bulkReads no /BulkReadsSchema All of the read bulks (GETs) your app exposes to retrieve resources in batches.
searches no /SearchesSchema All the searches for your app. You can add your own here, or Zapier will automatically register any from the search method on your resources.
creates no /CreatesSchema All the creates for your app. You can add your own here, or Zapier will automatically register any from the create method on your resources.
searchOrCreates no /SearchOrCreatesSchema All the search-or-create combos for your app. You can create your own here, or Zapier will automatically register any from resources that define a search, a create, and a get (or define a searchOrCreate directly). Register non-resource search-or-creates here as well.
searchAndCreates no /SearchAndCreatesSchema An alias for "searchOrCreates".
flags no /AppFlagsSchema Top-level app options
throttle no /ThrottleObjectSchema Zapier uses this configuration to apply throttling when the limit for the window is exceeded. When set here, it is the default throttle configuration used on each action of the integration. And when set in an action's operation object, it gets overwritten for that action only.

Examples

  • { version: '1.0.0', platformVersion: '10.1.2' }

Anti-Examples

  • { version: 'v1.0.0', platformVersion: '10.1.2' } - Invalid value for version.
  • { version: '1.0.0', platformVersion: 'v10.1.2' } - Invalid value for platformVersion.

/AuthenticationBasicConfigSchema

Config for Basic Authentication. No extra properties are required to setup Basic Auth, so you can leave this empty if your app uses Basic Auth.

Details

Examples

  • {}

Anti-Examples

  • { foo: true } - Invalid key.

/AuthenticationCustomConfigSchema

Config for custom authentication (like API keys). No extra properties are required to setup this auth type, so you can leave this empty if your app uses a custom auth method.

Details

Properties

Key Required Type Description
sendCode no oneOf(/RequestSchema, /FunctionSchema) EXPERIMENTAL: Define the call Zapier should make to send the OTP code.

Examples

  • {}
  • {
      sendCode: {
        url: 'https://example.com/api/send',
        headers: { Authorization: 'Bearer {{process.env.API_KEY}}' },
        body: {
          to_phone_number: '{{bundle.inputData.phone_number}}',
          code: '{{bundle.inputData.code}}'
        }
      }
    }
    

Anti-Examples

  • { foo: true } - Invalid key.

/AuthenticationDigestConfigSchema

Config for Digest Authentication. No extra properties are required to setup Digest Auth, so you can leave this empty if your app uses Digets Auth.

Details

Examples

  • {}

Anti-Examples

  • { foo: true } - Invalid key.

/AuthenticationOAuth1ConfigSchema

Config for OAuth1 authentication.

Details

Properties

Key Required Type Description
getRequestToken yes oneOf(/RequestSchema, /FunctionSchema) Define where Zapier will acquire a request token which is used for the rest of the three legged authentication process.
authorizeUrl yes oneOf(/RedirectRequestSchema, /FunctionSchema) Define where Zapier will redirect the user to authorize our app. Typically, you should append an oauth_token querystring parameter to the request.
getAccessToken yes oneOf(/RequestSchema, /FunctionSchema) Define how Zapier fetches an access token from the API

Examples

  • {
      getRequestToken: { require: 'some/path/to/file.js' },
      authorizeUrl: { require: 'some/path/to/file2.js' },
      getAccessToken: { require: 'some/path/to/file3.js' }
    }
    

Anti-Examples

  • {
      getRequestToken: { require: 'some/path/to/file.js' },
      authorizeUrl: { require: 'some/path/to/file2.js' }
    }
    
    Missing required key.

/AuthenticationOAuth2ConfigSchema

Config for OAuth2 authentication.

Details

Properties

Key Required Type Description
authorizeUrl yes oneOf(/RedirectRequestSchema, /FunctionSchema) Define where Zapier will redirect the user to authorize our app. Note: we append the redirect URL and state parameters to return value of this function.
getAccessToken yes oneOf(/RequestSchema, /FunctionSchema) Define how Zapier fetches an access token from the API
refreshAccessToken no oneOf(/RequestSchema, /FunctionSchema) Define how Zapier will refresh the access token from the API
codeParam no string Define a non-standard code param Zapier should scrape instead.
scope no string What scope should Zapier request?
autoRefresh no boolean Should Zapier invoke refreshAccessToken when we receive an error for a 401 response?
enablePkce no boolean Should Zapier use PKCE for OAuth2?

Examples

  • {
      authorizeUrl: { require: 'some/path/to/file.js' },
      getAccessToken: { require: 'some/path/to/file2.js' }
    }
    
  • {
      authorizeUrl: { require: 'some/path/to/file.js' },
      getAccessToken: { require: 'some/path/to/file2.js' },
      refreshAccessToken: { require: 'some/path/to/file3.js' },
      codeParam: 'unique_code',
      scope: 'read/write',
      autoRefresh: true,
      enablePkce: true
    }
    

Anti-Examples

  • { authorizeUrl: { require: 'some/path/to/file.js' } } - Missing required key getAccessToken.

/AuthenticationSchema

Represents authentication schemes.

Details

Properties

Key Required Type Description
type yes string in ('basic', 'custom', 'digest', 'oauth1', 'oauth2', 'session') Choose which scheme you want to use.
test yes oneOf(/RequestSchema, /FunctionSchema) A function or request that confirms the authentication is working.
fields no /FieldsSchema Fields you can request from the user before they connect your app to Zapier.
connectionLabel no anyOf(/RequestSchema, /FunctionSchema, string) A string with variables, function, or request that returns the connection label for the authenticated user.
basicConfig no /AuthenticationBasicConfigSchema No description given.
customConfig no /AuthenticationCustomConfigSchema No description given.
digestConfig no /AuthenticationDigestConfigSchema No description given.
oauth1Config no /AuthenticationOAuth1ConfigSchema No description given.
oauth2Config no /AuthenticationOAuth2ConfigSchema No description given.
sessionConfig no /AuthenticationSessionConfigSchema No description given.

Examples

  • { type: 'basic', test: '$func$2$f$' }
  • { type: 'custom', test: '$func$2$f$', fields: [ { key: 'abc' } ] }
  • { type: 'custom', test: '$func$2$f$', connectionLabel: '{{bundle.inputData.abc}}' }
  • { type: 'custom', test: '$func$2$f$', connectionLabel: '$func$2$f$' }
  • { type: 'custom', test: '$func$2$f$', connectionLabel: { url: 'abc' } }

Anti-Examples

  • {} - Missing required keys: type and test
  • '$func$2$f$' - Must be object
  • { type: 'unknown', test: '$func$2$f$' } - Invalid value for key: type
  • { type: 'custom', test: '$func$2$f$', fields: '$func$2$f$' } - Invalid value for key: fields

/AuthenticationSessionConfigSchema

Config for session authentication.

Details

Properties

Key Required Type Description
perform yes oneOf(/RequestSchema, /FunctionSchema) Define how Zapier fetches the additional authData needed to make API calls.

Examples

  • { perform: { require: 'some/path/to/file.js' } }

Anti-Examples

  • {} - Missing required key: perform

/BasicActionOperationSchema

Represents the fundamental mechanics of a search/create.

Details

Properties

Key Required Type Description
resource no /KeySchema Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results.
perform yes oneOf(/RequestSchema, /FunctionSchema) How will Zapier get the data? This can be a function like (z) => [{id: 123}] or a request like {url: 'http...'}.
performResume no /FunctionSchema A function that parses data from a perform (which uses z.generateCallbackUrl()) and callback request to resume this action.
performGet no oneOf(/RequestSchema, /FunctionSchema) How will Zapier get a single record? If you find yourself reaching for this - consider resources and their built-in get methods.
inputFields no /DynamicFieldsSchema What should the form a user sees and configures look like?
outputFields no /DynamicFieldsSchema What fields of data will this return? Will use resource outputFields if missing, will also use sample if available.
sample yes (with exceptions, see description) object What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample
lock no /LockObjectSchema INTERNAL USE ONLY. Zapier uses this configuration for internal operation locking.
throttle no /ThrottleObjectSchema Zapier uses this configuration to apply throttling when the limit for the window is exceeded.

Examples

  • { perform: { require: 'some/path/to/file.js' }, sample: { id: 42, name: 'Hooli' } }

Anti-Examples

  • { perform: { require: 'some/path/to/file.js' } } - Missing required key: sample. Note - This is only invalid if display is not explicitly set to true and if it does not belong to a resource that has a sample.

/BasicCreateActionOperationSchema

Represents the fundamental mechanics of a create.

Details

Properties

Key Required Type Description
resource no /KeySchema Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results.
perform no (with exceptions, see description) oneOf(/RequestSchema, /FunctionSchema) How will Zapier get the data? This can be a function like (z) => [{id: 123}] or a request like {url: 'http...'}. Exactly one of perform or performBuffer must be defined. If you choose to define buffer and performBuffer, you must omit perform.
performResume no /FunctionSchema A function that parses data from a perform (which uses z.generateCallbackUrl()) and callback request to resume this action.
performGet no oneOf(/RequestSchema, /FunctionSchema) How will Zapier get a single record? If you find yourself reaching for this - consider resources and their built-in get methods.
inputFields no /DynamicFieldsSchema What should the form a user sees and configures look like?
outputFields no /DynamicFieldsSchema What fields of data will this return? Will use resource outputFields if missing, will also use sample if available.
sample yes (with exceptions, see description) object What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample
lock no /LockObjectSchema INTERNAL USE ONLY. Zapier uses this configuration for internal operation locking.
throttle no /ThrottleObjectSchema Zapier uses this configuration to apply throttling when the limit for the window is exceeded.
shouldLock no boolean Should this action be performed one at a time (avoid concurrency)?
buffer no (with exceptions, see description) /BufferConfigSchema Currently an internal-only feature. Zapier uses this configuration for creating objects in bulk with performBuffer.
performBuffer no (with exceptions, see description) /FunctionSchema Currently an internal-only feature. A function to create objects in bulk with. buffer and performBuffer must either both be defined or neither. Additionally, only one of perform or performBuffer can be defined. If you choose to define perform, you must omit buffer and performBuffer.

Examples

  • { perform: { require: 'some/path/to/file.js' }, sample: { id: 42, name: 'Hooli' } }

Anti-Examples

  • { perform: { require: 'some/path/to/file.js' } } - Missing required key: sample. Note - This is only invalid if display is not explicitly set to true and if it does not belong to a resource that has a sample.

/BasicDisplaySchema

Represents user information for a trigger, search, or create.

Details

Properties

Key Required Type Description
label yes (with exceptions, see description) string A short label like "New Record" or "Create Record in Project". Optional if hidden is true.
description yes (with exceptions, see description) string A description of what this trigger, search, or create does. Optional if hidden is true.
directions no string A short blurb that can explain how to get this working. EG: how and where to copy-paste a static hook URL into your application. Only evaluated for static webhooks.
hidden no boolean Should this operation be unselectable by users?

Examples

  • { hidden: true }
  • { label: 'New Thing', description: 'Gets a new thing for you.' }
  • {
      label: 'New Thing',
      description: 'Gets a new thing for you.',
      directions: 'This is how you use the thing.',
      hidden: false
    }
    

Anti-Examples

  • { label: 'New Thing', hidden: false } - Missing required key: description
  • { description: 'Gets a new thing for you.', hidden: false } - Missing required key: label

/BasicHookOperationSchema

Represents the inbound mechanics of hooks with optional subscribe/unsubscribe. Defers to list for fields.

Details

Properties

Key Required Type Description
type yes (with exceptions, see description) string in ('hook') Must be explicitly set to "hook" unless this hook is defined as part of a resource, in which case it's optional.
resource no /KeySchema Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results.
perform yes /FunctionSchema A function that processes the inbound webhook request.
performList yes (with exceptions, see description) oneOf(/RequestSchema, /FunctionSchema) Fetch a list of items on demand during testing instead of waiting for a hook. You can also consider resources and their built-in hook/list methods. Note: this is required for public apps to ensure the best UX for the end-user. For private apps, this is strongly recommended for testing REST Hooks. Otherwise, you can ignore warnings about this property with the --without-style flag during zapier push.
canPaginate no boolean Does this endpoint support pagination via temporary cursor storage?
performSubscribe yes (with exceptions, see description) oneOf(/RequestSchema, /FunctionSchema) Takes a URL and any necessary data from the user and subscribes. Note: this is required for public apps to ensure the best UX for the end-user. For private apps, this is strongly recommended for testing REST Hooks. Otherwise, you can ignore warnings about this property with the --without-style flag during zapier push.
performUnsubscribe yes (with exceptions, see description) oneOf(/RequestSchema, /FunctionSchema) Takes a URL and data from a previous subscribe call and unsubscribes. Note: this is required for public apps to ensure the best UX for the end-user. For private apps, this is strongly recommended for testing REST Hooks. Otherwise, you can ignore warnings about this property with the --without-style flag during zapier push.
inputFields no /DynamicFieldsSchema What should the form a user sees and configures look like?
outputFields no /DynamicFieldsSchema What fields of data will this return? Will use resource outputFields if missing, will also use sample if available.
sample yes (with exceptions, see description) object What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample

Examples

  • {
      type: 'hook',
      perform: { require: 'some/path/to/file.js' },
      performList: { require: 'some/path/to/file2.js' },
      performSubscribe: { require: 'some/path/to/file3.js' },
      performUnsubscribe: { require: 'some/path/to/file4.js' },
      sample: { id: 42, name: 'Hooli' }
    }
    

Anti-Examples

  • {
      type: 'hook',
      perform: { require: 'some/path/to/file.js' },
      performList: { require: 'some/path/to/file2.js' },
      performSubscribe: { require: 'some/path/to/file3.js' },
      performUnsubscribe: { require: 'some/path/to/file4.js' }
    }
    
    Missing required key: sample. Note - This is only invalid if display is not explicitly set to true and if it does not belong to a resource that has a sample.

/BasicOperationSchema

Represents the fundamental mechanics of triggers, searches, or creates.

Details

Properties

Key Required Type Description
resource no /KeySchema Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results.
perform yes oneOf(/RequestSchema, /FunctionSchema) How will Zapier get the data? This can be a function like (z) => [{id: 123}] or a request like {url: 'http...'}.
inputFields no /DynamicFieldsSchema What should the form a user sees and configures look like?
outputFields no /DynamicFieldsSchema What fields of data will this return? Will use resource outputFields if missing, will also use sample if available.
sample yes (with exceptions, see description) object What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample
lock no /LockObjectSchema INTERNAL USE ONLY. Zapier uses this configuration for internal operation locking.
throttle no /ThrottleObjectSchema Zapier uses this configuration to apply throttling when the limit for the window is exceeded.

Examples

  • { perform: { require: 'some/path/to/file.js' }, sample: { id: 42, name: 'Hooli' } }

Anti-Examples

  • { perform: { require: 'some/path/to/file.js' } } - Missing required key: sample. Note - This is only invalid if display is not explicitly set to true and if it does not belong to a resource that has a sample.

/BasicPollingOperationSchema

Represents the fundamental mechanics of a trigger.

Details

Properties

Key Required Type Description
type no string in ('polling') Clarify how this operation works (polling == pull or hook == push).
resource no /KeySchema Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results.
perform yes oneOf(/RequestSchema, /FunctionSchema) How will Zapier get the data? This can be a function like (z) => [{id: 123}] or a request like {url: 'http...'}.
canPaginate no boolean Does this endpoint support pagination via temporary cursor storage?
inputFields no /DynamicFieldsSchema What should the form a user sees and configures look like?
outputFields no /DynamicFieldsSchema What fields of data will this return? Will use resource outputFields if missing, will also use sample if available.
sample yes (with exceptions, see description) object What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample
throttle no /ThrottleObjectSchema Zapier uses this configuration to apply throttling when the limit for the window is exceeded.

Examples

  • { perform: { require: 'some/path/to/file.js' }, sample: { id: 42, name: 'Hooli' } }

Anti-Examples

  • { perform: { require: 'some/path/to/file.js' } } - Missing required key: sample. Note - This is only invalid if display is not explicitly set to true and if it does not belong to a resource that has a sample.

/BufferConfigSchema

Currently an internal-only feature. Zapier uses this configuration for creating objects in bulk.

Details

Properties

Key Required Type Description
groupedBy yes array The list of keys of input fields to group bulk-create with. The actual user data provided for the fields will be used during execution. Note that a required input field should be referenced to get user data always.
limit yes integer The maximum number of items to call performBuffer with. Note that it is capped by the platform to prevent exceeding the AWS Lambda's request/response payload size quota of 6 MB. Also, the execution is time-bound; we recommend reducing it upon consistent timeout.

Examples

  • { groupedBy: [ 'workspace', 'sheet' ], limit: 100 }

Anti-Examples

  • { groupedBy: [], limit: 100 } - Empty groupedBy list provided: [].
  • { groupedBy: [ 'workspace' ] } - Missing required key: limit.
  • { limit: 1 } - Missing required key: groupedBy.

/BulkReadSchema

How will Zapier fetch resources from your application?

Details

Properties