Note: This guide is for Zapier's legacy web builder. For new integrations, use Zapier Visual Builder and its new Action documentation including a simplified Input Designer to build action forms.


Actions answer the question: What should my users be able to create via Zapier? They are things like:

  • Create ToDo Task (EG: Basecamp)
  • Create Chat Message (EG: Campfire or Hipchat)
  • Create Issue (EG: GitHub or Pivotal Tracker)

You can think of Actions as POSTs, writes, or the creation of a resource. It involves Zapier sending data to your app.

What a user sees:

What a developer sees:

See also: Actions in the CLI

You can define your actions via your app's dashboard. When you create a new action, you'll be prompted with several options. Below are complete definitions of what each option is for.

Action Options#


This is a human readable label a user would see when browsing the directory and adding your app. Make it short but descriptive.

Create Issue, Send Alert or Unsubscribe User


This is the object that the action is most closely associated with. It will be a noun you used in the Name field. We rely on an accurate noun to generate human-friendly sentences for users.

"Create Issue" would have "Issue" as the noun. "Unsubscribe User" would use "User".


This is a field only really used internally for both dynamic dropdowns and scripting references. Needs to be at least two characters long, start with an alpha, and only contain a-z, A-Z, 0-9 or _.

create_issue, ticket or newNote

Help Text#

This some human readable explanatory text, usually something that clarifies what the action does.

Creates a new issue in a selected repository.

The user will see Name and Help Text like below:

label and help

Action Endpoint URL#

Define the URL where we will, by default, POST the payload to. You can also make use of variable syntax where auth fields and action fields will be injected.

Example: or http://{{account}}

What about the payload? You can define those in action fields, anything you put there and check "Send in JSON?" will be included in the JSON according to its key!

A Warning about encoding URL params#

We will not automatically encode any URL variables, so you're responsible for encoding any if they require that. For example, emails might include a + sign, so if you have{{email}} you'll want to encode that in your ACTION_KEY_pre_write (or remove it from there and add it to the bundle.request.params), otherwise you'll get a "space" where the + sign is.

A better approach is to not even include it in the URL (it'll be added and encoded automatically in that case)

Custom Action Fields URL#

This allows you to dynamically define action fields that are user set (IE: custom fields). They get passed into the POST'ed JSON just like normal action fields (or into scripting).

Example: or http://{{account}}

Read more about custom field formatting here.


Usually you'll want to leave this checked, but if you don't we'll hide that action behind an "uncommon" link when a user selects their action. Mainly this is helpful for removing actions that are there for breadth but are rarely used.


Usually you'll want to leave this unchecked. If you check it, we'll completely hide the action from the enduser. This can be useful if an action is incomplete, but you need to deploy your app in it's current state. This option is also a way to hide actions that become deprecated in your API.

↑ Was this documentation useful? Yes No