Zapier Steps Reference
This page lists every step in the Keito app on Zapier (version 1.3.0): what it needs, what it does, and what it returns. For setup and concepts, start with the Zapier integration overview. For worked examples, see Zapier Workflow Examples.
Required inputs are marked required. Dates use YYYY-MM-DD; times use HH:mm in the workspace’s local time. IDs are Keito record IDs; the pickers in the Zap editor fill them for you, and Find steps return them for mapping.
Triggers
All triggers poll. Each poll reads changes from the last 30 days, returns the newest records first, and hands Zapier at most 100 records per poll. Zapier runs a Zap once per record ID.
| Trigger | Fires when | Optional filters | Returns |
|---|---|---|---|
| New Client | A client is created | None | Client |
| New Contact | A client contact is created | Client | Contact |
| New Project | A project is created | None | Project |
| New Time Entry | A time entry is created | Project, User (a Keito user ID, or me for the connected user) |
Time entry |
| New Expense | An expense is recorded | Project | Expense |
| New Invoice | An invoice is created (as a draft) | Client | Invoice with line items |
| Updated Invoice | An invoice is created, edited, or changes state | Client | Invoice with line items, plus original_id |
Updated Invoice gives each update its own Zapier ID so a Zap can run for every change. Map the invoice’s Original ID into other apps as the stable key, and add a Filter on State (draft, open, paid, closed, voided) when you only want one transition.
The New Time Entry User filter only sees other people’s time when the connected user is an administrator or manager. A record edited inside the 30-day window but created before it does not fire a New trigger.
Actions
Create Client
Creates a client. Duplicates are not prevented, so pair it with Find Client or use Find or Create Client.
| Field | Notes |
|---|---|
| Name | Required. |
| Address, Currency | Currency is a three-letter code from the picker; defaults to the workspace currency. |
| Payment Terms, Payment Days | Terms are upon_receipt, net_15, net_30, net_45, net_60, or custom; Payment Days applies to custom. |
| Tax %, Tax 2 %, Discount % | Client defaults copied onto new invoices. |
| Is Active | Defaults to true. |
Create Contact
Adds a contact to a client. Returns the contact with its client.
| Field | Notes |
|---|---|
| Client | Required. Picker or a client ID. |
| First Name | Required. |
| Last Name, Title, Email, Office Phone, Mobile Phone, Fax | Optional. |
| Invoice Recipient Status | none, recipient, cc, or bcc; an email is needed for anything other than none. |
Create Project
Creates a project for a client. Commercial fields (rates, fees, budgets) need permission to view billable rates; leave them blank otherwise.
| Field | Notes |
|---|---|
| Client, Name | Required. |
| Code, Notes, Starts On, Ends On | Optional. |
| Is Billable, Bill By | Bill By is PROJECT, TASKS, PEOPLE, or NONE. A non-billable project must use NONE. |
| Is Fixed Fee, Fee, Hourly Rate | A fixed-fee project needs a Fee; Fee is only allowed on fixed-fee projects. |
| Budget By, Budget, Budget Is Monthly, Cost Budget, Cost Budget Includes Expenses | Budget By is NONE, PROJECT_HOURS, PROJECT_COST, TASK, TASK_FEES, or PERSON. NONE forbids a budget. |
| Notify When Over Budget, Budget Alert %, Show Budget to All | Optional alerts and visibility. |
| Tasks | Workspace tasks to assign at creation. Keito also assigns the workspace’s default tasks. |
Create Project Task
Creates a new task on a project and makes it active there. Task names are unique per project (case-insensitive); creating an archived task’s name restores that task.
| Field | Notes |
|---|---|
| Project, Task Name | Required. Names up to 255 characters. |
| Billable | Defaults to the project’s billable setting. |
| Hourly Rate | Rate for new time on this project. |
| Budget | Hours or fees, following the project’s Budget By setting. 0 is allowed. |
Returns the task with project_id, assignment_id, and the billing fields when the connected user may see them. Billable, Hourly Rate, and Budget need permission to view billable rates; if any is filled in without it, Keito answers 403.
Add Task to Project
Assigns an existing workspace task to a project. Use it when the task already exists in your task list; use Create Project Task for a brand-new task.
| Field | Notes |
|---|---|
| Project, Task | Required. The Task picker lists workspace tasks. |
| Billable, Hourly Rate, Budget | Optional, same rules as Create Project Task. |
Returns the task assignment. Keito answers 409 when the task is already active on the project; use Set Task Budget instead.
Set Task Budget
Sets the budget for a task that is already active on a project, and optionally its hourly rate and billable flag. Nothing else on the assignment changes, and it never archives or removes the task.
| Field | Notes |
|---|---|
| Project | Required. Choosing it refreshes the Task picker. |
| Task | Required. Only tasks active on the selected project. |
| Budget | Required. Hours or fees per the project’s Budget By setting; 0 is allowed. |
| Hourly Rate | Applies to new time only; existing entries are not repriced. |
| Billable | Leave blank to keep the current setting. |
Returns the task assignment with its ID, project, task, budget, rate, and billable flag. If the task is not active on the project the step fails with “No active assignment was found”.
Create Time Entry
Logs a time entry against a project task. Enter Hours, or leave Hours blank and give Start Time and End Time.
| Field | Notes |
|---|---|
| Project, Task, Date | Required. The Task picker only lists tasks active on the chosen project. |
| Hours | Decimal, greater than 0 and at most 24. 1.5 is one hour and thirty minutes. |
| Start Time, End Time | HH:mm; both are needed when Hours is blank. |
| Notes, Internal Notes | Internal notes are stored only when the workspace enables them. |
| Billable | Applied only when the workspace allows billability overrides for the connected user; otherwise the task default applies. |
| User | A Keito user ID to log time for someone else (administrators and managers). Blank logs time for the connected user. |
| Metadata | A JSON object up to 4 KB for your own references. |
Entries created this way are marked with source api.
Create Expense
Records an expense against a project. The workspace must have Expenses enabled. Enter either Total Cost (fixed-price categories) or Units (unit-priced categories such as mileage), never both.
| Field | Notes |
|---|---|
| Project, Expense Category, Date | Required. |
| Total Cost | Greater than 0. |
| Units | Greater than 0; decimals up to six places are accepted when mapped from another step. |
| Notes, Billable | Billable is ignored on non-billable projects. |
| Entry Type | expense (default) or refund. A refund records money returned and needs a Refund Reason. |
| Refund Reason, Original Expense | Reason is returned_materials, vendor_refund, correction, imported_adjustment, or other; Original Expense links the refund to the expense it adjusts. Both apply only to refunds. |
| Attach Receipt to Invoice | Include the receipt when the expense is invoiced. |
| Metadata | JSON object up to 4 KB. |
Returns the expense with an absolute receipt URL when a receipt exists.
Create Invoice
Creates a draft invoice. The draft has a placeholder DRAFT- number until it is sent.
| Field | Notes |
|---|---|
| Client | Required. |
| Subject, Purchase Order, Notes | Optional. |
| Issue Date, Due Date | Issue Date defaults to today; Due Date defaults from the payment term. |
| Payment Term | upon_receipt, net_15, net_30, net_45, net_60, or custom. |
| Currency | Picker; defaults to the workspace currency. |
| Tax %, Tax 2 %, Discount % | Invoice-level percentages. |
| Billing Period Start, Billing Period End | Cannot overlap another invoice for the same client. |
| Service Period Start, Service Period End | Shown on the invoice; give both or neither, end on or after start. |
| Line Items | Repeating group: Kind (SERVICE or PRODUCT), Effect (charge or credit), Description (required), Quantity (required), Unit Price (required), Apply Tax, Apply Tax 2, Project. Credit lines reduce the total; enter positive numbers for both kinds. |
Returns the invoice with its line items, amounts, tax amounts, dates, and state.
Create Estimate
Creates a draft estimate for a client with optional line items (Kind, Description, Quantity, Unit Price, Apply Tax, Apply Tax 2, Project). Fields: Client (required), Number, Subject, Issue Date, Valid Until, Currency, Purchase Order, Tax %, Tax 2 %, Discount %, Intro Message, Notes. Returns the estimate with its state and line items.
Send Invoice Email
Emails an invoice to its recipients. Send issues a draft, assigns its final number, and marks it open. Reminder is for open invoices and Thank You for paid invoices.
| Field | Notes |
|---|---|
| Message Type | Required. send (default), reminder, or thank_you. |
| Invoice | Required. The picker labels drafts by subject and issue date; map an ID from Create Invoice or Find Invoice in multi-step Zaps. |
| Recipient Email | Required. One or more addresses. |
| CC Email | Optional; not available for Thank You. Duplicates of a recipient are dropped. Up to 50 addresses in total. |
| Email Subject, Email Body | Defaults come from the workspace’s invoice email settings. |
| Attach Invoice PDF, Include Invoice Attachments, Attach Expense Receipts | All default to on. Receipts and attachments apply to Send and Reminder. |
| Send Me a Copy | Not available for Thank You. |
Returns the message record: recipients, CC, subject, body, attachment flags, and the message type. If Keito reports that the invoice was issued but delivery failed, the invoice is already open; fix the delivery problem before replaying.
Searches
Searches return the matching records, newest or best match first, and an empty result when nothing matches. Each reads up to five pages of records, so give it a distinct value in a large workspace.
| Search | Inputs | Matching | Typical use |
|---|---|---|---|
| Find Client | Name (required) | Active clients whose name contains the text; exact matches first | Client ID for Create Invoice, Create Contact, or Create Project |
| Find Contact | Client (required), Email (required) | Exact email within the client | Contact details for invoice recipients |
| Find Project | Client (required), Name (required) | Active projects for the client whose name contains the text | Project ID for time, expenses, and tasks |
| Find Task | Name (required), Project (optional) | Active tasks whose name contains the text, within the project when given | Task ID for Create Time Entry or Set Task Budget |
| Find Invoice | Invoice Number (required) | Exact number, case-insensitive | Invoice ID for Send Invoice Email or an accounting step |
Draft invoices carry a placeholder DRAFT- number until they are sent, so Find Invoice works for issued invoices.
Find or Create is available for clients, projects, contacts, and invoices. Zapier runs the search and, when nothing is found, the matching create step with the fields you map.
Returned Fields
Every step returns Keito’s API fields for the record, so later steps can map them. The most used ones:
| Record | Fields |
|---|---|
| Client | id, name, address, currency, is_active, payment_terms, payment_days, tax, tax2, discount, timestamps |
| Contact | id, client id and name, first_name, last_name, title, email, invoice_recipient_status, phones, timestamps |
| Project | id, client id and name, name, code, is_active, is_billable, is_fixed_fee, bill_by, budget_by, budget fields, starts_on, ends_on, notes, timestamps; hourly_rate, fee, and budget only when the connected user may view them |
| Task assignment | id, project id, name, and code, task id and name, is_active, billable, hourly_rate, budget, timestamps |
| Time entry | id, user, project, and task ids and names, spent_date, hours, notes, internal_notes, is_running, started_time, ended_time, is_locked, is_billed, billable, budgeted, billable_rate, source, metadata, timestamps |
| Expense | id, user, project, client, and category details, spent_date, total_cost, currency, units, entry_type, refund fields, notes, billable, receipt fields, is_locked, is_billed, approval_status, timestamps |
| Invoice | id, client and creator, number, purchase_order, subject, state, amount, due_amount, currency, issue_date, due_date, payment_term, tax and discount amounts, notes, billing and service periods, sent_at, paid_at, closed_at, timestamps, and line_items[] with kind, effect, description, quantity, unit_price, amount, taxed, taxed2, project_id |
| Estimate | Like an invoice, plus valid_until, intro_message, viewed_at, accepted_at, declined_at, expired_at, converted_invoice_id |
Rate and budget fields are omitted, not blank, when the connected user cannot see them in Keito.