Tallyfy Workflow Automation
Connect Tallyfy and run your workflows right from chat. Launch and track processes, complete and assign tasks, manage approvals, search across your organization, and build or update templates, all in your own Tallyfy account. Try asking: "Launch the New Employee Onboarding process for Jane Doe" "Show me my open tasks" or "what is Sarah working on?" "What templates do we have?" "Create an approval workflow for vendor onboarding" "Complete the 'Send welcome email' task" Built by Tallyfy, the workflow and process automation platform for teams. You sign in with your own Tallyfy account, and the assistant only ever sees what you can see. 100+ actions across tasks, processes, templates, approvals, forms, and search.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- AI Workflow Automation & iPaaS Platforms
- Secondary Subcategories
- None listed
- Brand
- Tallyfy
- Access
- Account required
- First tracked
- 2026-06-05
- Tool count
- 109
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is visible.
ChatGPT Plugin Discoverability Score
ChatGPT organic discovery is not live yet
Tallyfy Workflow Automation is tracked in the ChatGPT Plugin registry. Public organic-discovery measurement is not live for ChatGPT yet, so there is no score to publish today.
Get notified when your score goes live
Enter your work email and we’ll notify you when ChatGPT Plugin organic discovery scoring launches.
No spam. Unsubscribe any time.
Competing in ChatGPT AI Workflow Automation & iPaaS Platforms
View CategoryHow the Discoverability Score works
Organic discovery scoring for Tallyfy Workflow Automation on ChatGPT is not live yet. The score will use measured agent conversations when it launches.
Organic discovery scoring is pending. Your Plugin score will appear on this scale when measurement goes live.
FoundDiagnostic
Whether Claude found your Plugin in connector search. It must be Found before it can reach the picker, but the score counts picker appearances—not search results.
PickedMain score
How often your Plugin appeared in the picker, or Claude invoked it directly, across contested conversations. This percentage is the Discoverability Score; the headline number is rounded.
PositionedDiagnostic
What position your Plugin appeared in when it was shown in the picker. This shows prominence, but it does not affect the score.
109 tools agents can invoke
Add assignees (users or guests or both) to a specific step in a template. REQUIRED: 'template_id' (32-char hex), 'step_id' (32-char hex), and 'assignees'. 'assignees' accepts the following format: Dict with 'users' and/or 'guests' keys (to add guests by email): assignees: {"users": [10026], "guests": ["alice@example.com"]} assignees: {"guests": ["alice@example.com"]} assignees: {"users": [10026]} This APPENDS: the tool reads the step first and re-sends its existing members, guests and groups alongside the additions, which the API would otherwise clear on an update that omits them. Existing assignees are never removed. Never call this without all three parameters.
add_assignees_to_step
Add form fields (text, dropdown, date, etc.) to a step. REQUIRED: 'template_id' (32-char hex), 'step_id' (32-char hex), and 'field_data' (dict). SUPPORTED `field_type` ENUM (9 values, must be one of these exactly): - `text` single-line text input - `textarea` multi-line text input (free-form notes) - `date` date picker (yyyy-mm-dd) - `dropdown` single-select from a list of options - `multiselect` multi-select from options (checkbox-style) - `radio` single-select radio buttons (mutually exclusive) - `file` file upload - `table` tabular data with named columns (REQUIRES `columns` list) - `assignees_form` member/assignee picker (the "person" field type) CONVENIENCE ALIASES (auto-resolved): `assignee`, `assignee_picker`, `member`, `member_picker` -> `assignees_form`. CONDITIONAL REQUIRED `field_data` KEYS (per field_type): - `dropdown` / `multiselect`: REQUIRE `options`: list of {text, optional int id}. `label` aliases `text`. - `radio`: REQUIRES `options` with AT LEAST 2 entries: list of {text, optional int id}. - `table`: REQUIRES `columns`: list of {label, optional id} (id auto-assigned if omitted) ALWAYS-REQUIRED `field_data` KEYS: `field_type`, `label`, `required` (bool). Pass `required=False` for an optional field; there is NO default. Optional: `guidance` (help text), `position`, `field_validation`, `collect_time`, `use_wysiwyg_editor`, `default_value`, `default_value_enabled`, `prefix`, `suffix`, `settings`. CORRECT usage: add_form_field_to_step(template_id="abc...", step_id="def...", field_data={"field_type":"dropdown","label":"Priority","required":True, "options":[{"id":1,"text":"High"},{"id":2,"text":"Medium"},{"id":3,"text":"Low"}]}) add_form_field_to_step(template_id="abc...", step_id="def...", field_data={"field_type":"text","label":"Customer Name","required":True}) Never call this without all three parameters.
add_form_field_to_step
Add a form field to a template's kickoff (prerun) form. Kickoff fields are filled out BEFORE a process starts; they collect initialization data (e.g. customer name, start date, priority). This is different from step form fields which are filled out DURING the process. REQUIRED: 'template_id' (32-char hex) and 'field_data' (dict). SUPPORTED `field_type` ENUM (same as step fields): text, textarea, date, dropdown, multiselect, radio, file, table, assignees_form CONVENIENCE ALIASES: assignee, assignee_picker, member, member_picker → assignees_form CONDITIONAL REQUIRED `field_data` KEYS: - dropdown / multiselect: REQUIRE `options`, a list of {text, optional integer id}. `label` is accepted as an alias for `text`. - radio: REQUIRES `options` with AT LEAST 2 entries, a list of {text, optional integer id}. - table: REQUIRES `columns`, a list of {label, optional id} ALWAYS-REQUIRED `field_data` KEYS: `field_type`, `label`, `required` (bool). Pass `required=False` for an optional field; there is NO default. Optional: guidance, position, collect_time, use_wysiwyg_editor, field_validation, default_value, default_value_enabled, prefix, suffix, settings. CORRECT usage: add_kickoff_field(template_id="abc...", field_data={"field_type":"text","label":"Customer Name","required":true}) add_kickoff_field(template_id="abc...", field_data={"field_type":"dropdown","label":"Priority","required":true, "options":[{"id":1,"text":"High"},{"id":2,"text":"Medium"},{"id":3,"text":"Low"}]}) Never call this without both parameters.
add_kickoff_field
Add a process or template to a folder. REQUIRED: 'folder_id' (32-char hex), 'object_id' (32-char hex ID of the process or template), and 'object_type' — 'run' for processes, 'checklist'/'template' for templates. THE FOLDER'S TYPE MUST MATCH object_type. Folder type is fixed at creation: - object_type='run' requires a folder created with create_folder(..., folder_type='run'). Passing a template folder fails with "No such a folder exists in Processes." Use get_process_folders() to find valid targets. - object_type='template'/'checklist' requires a template folder (the create_folder default). Use get_template_folders() to find valid targets. Returns a relation whose integer id is what remove_object_from_folder takes. Never call this without all three parameters.
add_object_to_folder
Add a new step to a template. Call this repeatedly after create_template to build out the workflow structure — one call per step, in order. When building a template from a user description or document, break the workflow into logical steps and call this for each one. REQUIRED: 'template_id' (32-char hex) and 'step_data' (dict with 'title' field — other fields optional). step_data keys: - 'title': step name (REQUIRED) - 'description': HTML instructions for the step assignee - 'position': 1-based order in the workflow - 'step_type': one of these 5 values (default 'task'): 'task' — standard task, completed by assignee 'approval' — approve/reject decision (MUST use this for any approval or review step — enables 'approved'/'rejected' automation conditions) 'expiring' — auto-completes after deadline passes 'email' — sends an email notification 'expiring_email' — sends email, auto-completes after deadline IMPORTANT: If a step involves approval, review, or sign-off, set step_type='approval'. Without this, automation rules that trigger on 'approved' or 'rejected' will not work. If a step is a notification or email alert, use 'email'. Never call this without both parameters.
add_step_to_template
Add a comment to a task. REQUIRED: 'task_id' (32-char hex) and 'content' (comment text). Optional: - 'run_id': process/run ID — pass it if you have it; you'll need it to call 'get_task_comments' later - 'label': "comment" (default) | "problem" | "resolve" | "improvement" | "advice" - 'state': "open" (default) | "hide-for-guests" | "collapsed" - 'sent_to': numeric user IDs to @mention. Look up IDs via get_organization_users first. @MENTIONS: a user is notified ONLY when the stored body contains @[<user_id>] markup, so 'sent_to' entries are rendered into the body as that. You can also write the mention straight into 'content' — @[20059], @20059, @alice@acme.com, @"Alice Smith" and @alice all resolve and are normalised to @[20059]. An unresolvable token stays plain text and notifies nobody, so prefer a numeric ID. Mentioning someone also grants them task access. LABEL='resolve' SEMANTICS (issue #172): - If the task HAS an unresolved label='problem' thread, this clears that flag via the resolve endpoint, matching the native app. Pass 'run_id' to avoid an extra lookup. - If it has NO open problem flag, label='resolve' is cosmetic only — the comment is stored with the label but nothing is cleared. A WARNING is logged so that is visible. - To clear a specific known problem thread without a separate comment, call resolve_task_issues(task_id, thread_id) directly — unambiguous, and returns the outcome. CORRECT usage: add_task_comment(task_id="abc123...", content="Everything is on track") add_task_comment(task_id="abc123...", run_id="def456...", content="Blocked on approval", label="problem") add_task_comment(task_id="abc123...", run_id="def456...", content="Issue resolved", label="resolve") add_task_comment(task_id="abc123...", content="Please review", sent_to=[20059]) Never call this without both required parameters.
add_task_comment
Retrieve and analyze all automation rules for a template. Returns the complete automation rules (conditions, actions, targets), a step lookup map, and pre-computed redundant_groups identifying duplicates and merge candidates. Use this data to: - Review redundant_groups for exact duplicates (same trigger AND actions) and same-trigger rules (mergeable actions) - Find conflicting rules (same conditions but contradictory actions, e.g. show vs hide the same step) - Spot orphaned rules: a then-action `target_step_id` not in step_lookup, or a condition whose `conditionable_type` is "Step" and whose `conditionable_id` is not in step_lookup. A `conditionable_type` of "Capture" (form field) or "Prerun" (kickoff field) is a valid trigger whose id is NOT a step id, so its absence from step_lookup is normal, NOT an orphan. - Assess automation complexity and suggest simplification IMPORTANT: Two rules with the same structure (e.g. both have 1 condition and 1 action) are NOT redundant if they reference different steps. Always compare conditionable_id AND target_step_id values. To consolidate: review redundant_groups, then use update_automation_rule to merge actions and delete_automation_rule to remove duplicates. The LLM decides which changes to apply. REQUIRED: 'template_id' (32-character hex string). Never call this without the template_id parameter.
analyze_template_automations
Archive a completed process (run). REQUIRED: 'run_id' (32-char hex). CAUTION: Archived processes are HIDDEN from default views but NOT deleted — all data, tasks, comments, and form-field captures are preserved. Use reactivate_process(run_id) to restore an archived process to active status. To permanently delete a process you must use the universal write fallback (tallyfy_api_write) since no first-class delete tool is exposed. Archived processes can be retrieved via get_organization_runs(archived='only'). Never call this without run_id.
archive_process
Ask the user a structured question with form fields. Use when you need clarification, confirmation, or user input before proceeding. Returns a structured question that the UI renders as a form. The conversation pauses until the user responds. RESPONSE FORMAT: When the user submits the form, the host forwards their answers back to the agent as a synthetic user turn shaped like {submitted: bool, fields: {<field_label>: <user_answer>}} where each field_answer is typed per the field's `type` — string for text/textarea/select/radio, bool for checkbox/toggle, ISO-8601 string for date/datetime/timepicker, {start, end} object for daterange, or a file_id reference for file. If the user dismisses the form, `submitted` is false and `fields` is empty. The synthetic turn arrives in the conversation log as `[Answers to prior question (question_id=...)] key=value, key2=value2`.
ask_user_question
Ask the user to confirm or decline a single binary choice. Use before any destructive or irreversible action (deleting a template, archiving a process, sending an invitation), or when an action's effect is non-obvious and the user should explicitly opt in. RESPONSE FORMAT: When the user submits, the host forwards their decision as a synthetic turn shaped like [Confirmation answer (interaction_id=...) interaction_type=confirm] confirmed=true|false. If the user dismisses the form, a cancel_interaction frame fires and the agent receives [User cancelled prior interaction (interaction_id=...)].
ask_user_to_confirm
Ask the user to drag-rank a list of options into a preferred order. Use when the agent has a candidate list (templates, tasks, options) whose ordering depends on the user's intent and a free-text answer would be lossy. RESPONSE FORMAT: When the user submits, the host forwards their ranked order back as a synthetic turn shaped like [Ranking answer (interaction_id=...) interaction_type=ranking] order=[id1, id2, id3]. The order reflects the user's drag arrangement; the items themselves are unchanged. If the user dismisses the form, a cancel_interaction frame fires and the agent receives [User cancelled prior interaction (interaction_id=...)].
ask_user_to_rank
Retrieve complete template data for a comprehensive health assessment. Returns the full template including metadata, steps, automation rules, and kickoff fields. Use this data to evaluate template health across these dimensions: - Metadata quality: Does it have a clear title, summary, and guidance? - Step clarity: Do steps have descriptive titles and summaries? Are any too vague? - Form completeness: Do steps that need data collection have appropriate form fields? - Automation efficiency: Are automation rules well-structured? Any conflicts or redundancies? - Deadline configuration: Do time-sensitive steps have reasonable deadlines? - Workflow structure: Is the step count manageable? Is the flow logical? Provide an overall health rating (excellent/good/fair/poor/critical) with specific recommendations. RETURNS: full template payload — top-level keys include `id`, `title`, `summary`, `steps[]`, `automated_actions[]`, `prerun[]` (kickoff fields), and metadata. Synthesize this into a `health_rating` (one of: excellent, good, fair, poor, critical) plus a `recommendations` list (string array of specific, actionable improvements). The tool returns RAW data — the LLM is responsible for the rating + recommendations synthesis. REQUIRED: 'template_id' (32-character hex string). Never call this without the template_id parameter.
assess_template_health
Change a user's role in the organization. REQUIRED: 'user_id' (positive integer) and 'role' ('light', 'standard', or 'admin'). Never call this without both parameters.
change_user_role
Clone (duplicate) a step within a template. REQUIRED: 'template_id' (32-char hex) and 'step_id' (32-char hex). Creates an exact copy of the step including form fields and assignees. Never call this without both parameters.
clone_step
Clone (duplicate) a template with a new name. REQUIRED: 'template_id' (32-char hex) and 'new_name' (string). The clone copies steps, form fields and automation rules. Permissions are handled by the API's own clone semantics and are NOT controllable from here — there is no parameter to opt in or out. CORRECT usage: clone_template(template_id="a1b2c3d4e5f6789012345678901234ef", new_name="Employee Onboarding v2") Never call this without both required parameters.
clone_template
Complete a process kickoff form to mark it as submitted. REQUIRED: 'run_id' (32-char hex process ID). Never call this without run_id.
complete_kickoff_form
Mark a task as complete. REQUIRED: 'run_id' (32-char hex process ID) and 'task_id' (32-char hex). APPROVAL TASKS need is_approved: If the task's task_type is "approval", you MUST pass is_approved=True (approve) or is_approved=False (reject). api-v2 returns HTTP 422 "The is approved field is required" if you omit it on an approval task. The requirement is gated on the task's OWN task_type, not on its parent step_type (the two can differ). Read task_type first via get_tasks_for_process or get_task (both return it). task_type="task" -> do NOT pass is_approved (regular completion) task_type="approval" -> MUST pass is_approved=True or is_approved=False task_type="expiring" -> do NOT pass is_approved (completing acknowledges it) task_type="expiring_email" -> do NOT pass is_approved (completing acknowledges it) task_type="email" -> do NOT pass is_approved (regular completion) is_approved is honored ONLY for approval tasks. On task/email it is ignored. On expiring or expiring_email it is NOT ignored: is_approved=False would record the task as EXPIRED instead of ACKNOWLEDGED, so this tool refuses is_approved=False on an expiring task. There is no way to mark a task expired through this tool. CORRECT usage: complete_task(run_id="...", task_id="...") # regular or expiring task complete_task(run_id="...", task_id="...", is_approved=True) # approve an approval task complete_task(run_id="...", task_id="...", is_approved=False) # reject an approval task Get run_id, task_id, and task_type from get_tasks_for_process() or get_my_tasks(). Never call this without both required parameters.
complete_task
Create conditional automation (if-then rules) for workflow templates. REQUIRED: 'template_id' (32-char hex) + 'automation_data' (dict with `conditions`+`actions`). COMPATIBILITY - action_type CONSTRAINS action_verb, they are NOT independent: visibility -> show | hide deadline -> deadline status -> reopen webhook -> emit_webhook assignment -> assign | assign_only | unassign | clear_assignees `reopen` NEVER pairs with `visibility`. Single-verb types may omit action_verb. conditionable_type: step | field | kickoff (auto-resolved) Step ops: completed, reopened, approved, rejected, acknowledged, expired, not_assigned Field/kickoff ops: contains, not_contains, equals, not_equals, equals_any, greater_than, less_than, is_empty, is_not_empty EVERY condition needs a `statement` key (null for step ops). AND/OR goes on EACH condition as `logic`:"and"|"or". No top-level condition_logic exists. EXAMPLE (ids are 32-char hex, no hyphens) - SHOW a step when a kickoff field = "Yes" (to hide it: action_verb "hide"): {"alias":"Show legal","conditions":[{"conditionable_id":"<ko_field_id>","conditionable_type":"kickoff","operation":"equals","statement":"Yes","logic":"and"}],"actions":[{"action_type":"visibility","action_verb":"show","target_step_id":"<step_id>"}]} Same envelope for other actions, swapping the "actions" entry: deadline: {..,"action_type":"deadline","deadline":{"value":3,"unit":"days","option":"from"}} assign: {..,"action_type":"assignment","action_verb":"assign","assignees":{"users":[12345]}} Every action needs `target_step_id`. deadline needs ALL of value/unit/option (unit minutes|hours|days|weeks|months, option before|from). webhook needs webhook_url+alias_name. Use "actions" (NOT "then_actions"). Tallyfy requires "alias" (a short rule name, NOT "automated_alias"); if you omit it this tool fills one in.
create_automation_rule
Create a new folder in the organization. REQUIRED: 'name' (folder name, max 32 chars). Optional: - 'folder_type': 'checklist' (DEFAULT — a folder that holds templates/blueprints) or 'run' (a folder that holds processes). Also accepts the aliases template/blueprint -> checklist and process -> run. - 'parent_id': 32-char hex ID of a parent folder, for nesting. The parent MUST be the same folder_type. CHOOSING folder_type MATTERS — it is fixed at creation and cannot be changed later: - To file PROCESSES into it (add_object_to_folder(object_type="run"), or get_organization_runs(folder=...)), you MUST create it with folder_type="run". A default 'checklist' folder will reject processes. - To file TEMPLATES into it (add_object_to_folder(object_type="template")), use the default folder_type="checklist". CORRECT usage: create_folder(name="Q1 2026", folder_type="run") # holds processes create_folder(name="HR Templates") # holds templates create_folder(name="Payroll", folder_type="run", parent_id="7c9e6679742540de944be07fc1f90ae7") Never call this without name.
create_folder
Create a new group (team) in the organization. REQUIRED: 'name' (group name, max 200 chars, must be unique in the organization) AND 'description' (non-empty string). The API rejects a create without a description, so ask the user for one — or pass a short factual summary of the group's purpose — rather than omitting it. Optional: 'members' (list of numeric member user IDs), 'guests' (list of guest emails). CORRECT usage: create_group(name="Finance", description="Finance department approvers") create_group(name="Onboarding buddies", description="Volunteers who mentor new hires", members=[20059, 20033]) Never call this without both name and description.
create_group
Create a new guest (external collaborator) in the organization. REQUIRED: 'email' (valid email), 'first_name', 'last_name'. Optional: 'phone_1' (primary phone, max 20 chars), 'phone_2' (secondary phone, max 20 chars), 'company_name' (max 200 chars). NOTE the phone parameter names: the API stores two numbered phone fields, 'phone_1' and 'phone_2'. There is no plain 'phone' field — a value sent as 'phone' is silently discarded and the guest is created without it. CORRECT usage: create_guest(email="alice@vendor.com", first_name="Alice", last_name="Smith") create_guest(email="bob@vendor.com", first_name="Bob", last_name="Jones", phone_1="+1 314 555 0100", company_name="Vendor Inc") Never call this without the three required parameters.
create_guest
Create a standalone (one-off) task with explicit structured fields. NOTE: Tallyfy internally creates a lightweight process container for every standalone task — this is expected platform behaviour and the task will still appear as a one-off task (is_oneoff_task: true). REQUIRED FIELDS: title, deadline, and at least one assignee. DEADLINE: Accepts natural language — e.g. "April 12 2026 at 3pm", "next Monday at noon", "tomorrow at 5pm". Resolved to UTC using the org timezone automatically. TASK TYPE: Accepted values: - "task" (default) — standard task - "approval" — approval/reject task - "expiring" — expiring task - "email" — email draft task - "expiring_email" — auto-send email task ASSIGNEES: Provide one or more of: - user_names: member full names (e.g. ["John Doe"]) - user_emails: member email addresses - guest_emails: guest email addresses - group_names: group names CORRECT usage: - create_standalone_task(title="Review budget", deadline="tomorrow at 3pm", user_emails=["john@example.com"]) - create_standalone_task(title="QA test", task_type="approval", deadline="April 12 2026", user_names=["Jane Smith"], description="Routine QA validation") If the user doesn't specify a deadline or assignee, ASK them before calling the tool.
create_standalone_task
Create a new tag in the organization. REQUIRED: 'title' (tag name). Optional: 'color' (hex color code like '#FF5733'). Never call this without title.
create_tag
Create a new template (checklist/blueprint). This is the first step when building a workflow from a user's description, uploaded document, or image — create the template shell here, then call add_step_to_template for each step, add_form_field_to_step for form fields, add_kickoff_field for pre-launch fields, and create_automation_rule for if-then logic. REQUIRED: 'title' (template name). Optional: 'type' ('procedure' for multi-step workflows, 'form' for data collection, 'document' for reference docs), 'summary', 'guidance', 'starred'. Never call this without title.
create_template
Remove an automation rule from a workflow template. REQUIRED: 'template_id' (32-char hex) and 'automation_id' (32-char hex). Never call this without both parameters.
delete_automation_rule
Delete a folder permanently. REQUIRED: 'folder_id'. Contents are NOT deleted — processes/templates are moved out first. Never call this without folder_id.
delete_folder
Delete a form field from a step. REQUIRED: 'template_id' (32-char hex), 'step_id' (32-char hex), and 'field_id' (32-char hex). NOTE: if the field is referenced by an automation rule (visibility condition) in another step, deletion fails with a 403 error; remove the automation rule first. Never call this without all three parameters.
delete_form_field
Delete a group from the organization permanently. REQUIRED: 'group_id'. This action cannot be undone. Never call this without group_id.
delete_group
Delete a kickoff (prerun) field from a template. REQUIRED: 'template_id' (32-char hex) and 'field_id' (32-char hex). WARNING: Deleting a kickoff field removes it permanently and drops all collected data for that field across existing process runs. This cannot be undone. NOTE: If the field is used in an automation rule (visibility condition), the deletion will fail with a 403 error; remove the automation rule first. Never call this without both parameters.
delete_kickoff_field
Delete a step from a template PERMANENTLY. REQUIRED: 'template_id' (32-char hex) and 'step_id' (32-char hex). Unlike archiving a template, this is a true hard delete with no restore endpoint. It cannot be undone. THE API BLOCKS THE DELETE INSTEAD OF CASCADING. Orphaned automation rules are NOT pruned server-side. The request is REJECTED with an error if either of these holds: - any automation rule references the step (as a rule's `conditionable_id`, or as the target of a then-action) → "Cannot delete this step because there are rules dependent on it." - any other step's deadline is anchored to this step → "Cannot delete this step because other steps have deadlines that depend on it." So you MUST clear the dependents FIRST to preserve or retarget them: use `get_step_dependencies` / `analyze_template_automations` to find what points at this step, then `update_automation_rule` (or `delete_automation_rule`) and re-anchor any dependent deadlines. Only then will the delete succeed. Never call this without both parameters.
delete_step
Delete a tag from the organization permanently. REQUIRED: 'tag_id'. This action cannot be undone. Never call this without tag_id.
delete_tag
Delete a comment from a task. REQUIRED: 'task_id' (32-char hex) and 'comment_id'. Optional: 'run_id' (pass if available). This action cannot be undone. Never call this without both required parameters.
delete_task_comment
ARCHIVE a template. REQUIRED: 'template_id' (32-char hex). This is a RECOVERABLE soft delete, NOT a permanent one. The template is archived (hidden from default template lists) and its steps, form fields and automation rules are preserved. Tallyfy exposes a restore endpoint, so an archived template can be brought back — reassure the user rather than warning them the action is irreversible. References to the template from folders and similar relations ARE removed, and the response lists what was detached under `deleted_references`. Permanently purging a template is a separate admin-only API operation that this tool does not perform, and it still requires the template to be archived first. Never call this without template_id.
delete_template
Disable a guest account. REQUIRED: 'email' (valid email). This prevents the guest from accessing the organization. Never call this without email.
disable_guest
Disable a user account. REQUIRED: 'user_id' (positive integer). This prevents the user from accessing the organization. Never call this without user_id.
disable_user
Edit the description/summary of a specific step in a template. The description supports HTML — use this to add rich instructions, checklists, or converted document content to a step. When a user wants to convert a document to step instructions, read the document content yourself and write the HTML here. Only the description changes: this tool reads the step first and re-sends its existing title and assignees (members, guests and groups), which the API would otherwise clear on an update that omits them. To change who a step is assigned to, use add_assignees_to_step instead. REQUIRED: 'template_id' (32-char hex), 'step_id' (32-char hex), and 'description' (new text, HTML allowed). Never call this without all three parameters.
edit_description_on_step
Re-enable a disabled guest account. REQUIRED: 'email' (valid email). Never call this without email.
enable_guest
Re-enable a disabled user account. REQUIRED: 'user_id' (positive integer). Never call this without user_id.
enable_user
Get templates (checklists) with full details including prerun fields, automated actions, linked tasks, and metadata. Returns 20 per page. Use page=2, page=3, etc. for more. meta.total_pages shows total page count. Optional: filter by folder name or folder ID.
get_all_templates
Get the currently authenticated user's profile data. No parameters required. USE THIS TOOL when user asks: - "Who am I?" - "What's my name?" - "Show my profile" - "What's my user ID?" - "What organization am I in?" Returns the authenticated user's full profile including numeric 'id', 'email', 'first_name', 'last_name', and organization details.
get_me
Get the options on a dropdown/radio/multiselect field, as {"id", "text"} objects. REQUIRED: 'template_id' (32-char hex), 'step_id' (32-char hex), and 'field_id' (32-char hex). Never call this without all three parameters. The id is needed to WRITE a value: dropdown takes {"id","text"}, multiselect a list of {"id","text","selected":true}, radio the bare text. Options the API could not have issued (missing an id or a text) are OMITTED rather than given a made-up id, so an empty list means none were usable and NOT that the field has no options - do not feed an empty result back into update_dropdown_options, which would replace the real list.
get_dropdown_options
Get a single group by its ID. REQUIRED: 'group_id'. Never call this without group_id.
get_group
Get all groups in the organization. Use group IDs to filter processes via get_organization_runs(groups=<group_id>) or assign tasks. All parameters are optional.
get_groups
Get a single guest's profile by email address. Returns guest profile data including name, contact info, last accessed time, and status. NOTE: This returns the guest's profile only, not their tasks. To get tasks assigned to a guest, use get_guest_tasks(guest_email="...") or get_guest_tasks(guest_id="...") with the guest_id from this response. CORRECT usage: - get_guest(email="guest@example.com")
get_guest
Get all tasks assigned to a specific guest (external user). IDENTIFICATION: Provide guest_id or guest_email. CORRECT usage: - get_guest_tasks(guest_id="MITxZa1z2f5d81bb53f1da7c7fa95a2cfec5cbc2") — fastest, no lookup needed - get_guest_tasks(guest_email="guest@example.com") — resolves email to guest_id automatically WRONG usage (will fail): - get_guest_tasks() — NO! Must provide at least one identifier For org member tasks, use get_user_tasks() instead. For the current user's tasks, use get_my_tasks() (no identifier needed). IMPORTANT: Tallyfy has no "urgent" or "priority" field. For urgent tasks, call with no status filter and look for status="overdue" or status="hasproblem" in results. PAGINATION: Returns 20 tasks per page. Use page=2, page=3, etc. for more. meta.total_pages shows total page count.
get_guest_tasks
Get dropdown/radio/multiselect options for a kickoff (prerun) field. REQUIRED: 'template_id' (32-char hex) and 'field_id' (32-char hex). Returns the options array for the specified kickoff field. Only works on fields with field_type dropdown, radio, or multiselect; returns an error for other field types. CORRECT usage: get_kickoff_dropdown_options(template_id="abc...", field_id="def...") Never call this without both parameters.
get_kickoff_dropdown_options
Get all kickoff/prerun fields for a template. REQUIRED: 'template_id' (32-character hex string). Never call this without the template_id parameter.
get_kickoff_fields
Get tasks assigned to the current user. No parameters required. USE THIS TOOL when user asks: - "What are my tasks?" - "Show me my tasks" - "What do I need to do?" - "What's assigned to me?" This tool returns task data including task IDs, run_ids (process IDs), titles, deadlines, and status. Use the returned data to answer follow-up questions about "those tasks" without making additional tool calls. IMPORTANT: Tallyfy has no urgency or priority field. For "urgent" tasks, look for status="overdue" or status="hasproblem" in the returned results. NOTE: This tool does NOT support status filtering. It returns all tasks for the current user. To filter by status, retrieve all tasks and filter the results client-side. PAGINATION: Returns 20 tasks per page. Use page=2, page=3, etc. to retrieve subsequent pages. meta.total_pages shows how many pages exist. meta.total shows the real count.
get_my_tasks
Get organization details. No parameters required — organization is determined from authentication context.
get_organization
Get all organization guests with full profile data. All parameters are optional. Use 'with_stats' (true/false) to include guest activity statistics. PAGINATION: Returns 20 results per page. Use page=2, page=3, etc. for more. meta.total_pages shows total page count.
get_organization_guests
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Tallyfy Workflow Automation alternatives on ChatGPT?
As of 2026-08-14, Tallyfy Workflow Automation competes with AB Projects, AgentMail, Endlss, mfloow, Process Documentation AI, Skylar, Spoki, Trackunit IrisX, Waldo, Weavely Forms & Surveys in ChatGPT AI Workflow Automation & iPaaS Platforms, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.