KosmoKrator

productivity

Wufoo Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Wufoo KosmoKrator integration.

Lua Namespace

Agents call this integration through app.integrations.wufoo.*. Use lua_read_doc("integrations.wufoo") inside KosmoKrator to discover the same reference at runtime.

Call Lua from the Headless CLI

Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic Wufoo workflow without starting an interactive agent session.

Inline Lua call
kosmo integrations:lua --eval 'dump(app.integrations.wufoo.get_current_user({}))' --json
Read Lua docs headlessly
kosmo integrations:lua --eval 'print(docs.read("wufoo"))' --json
kosmo integrations:lua --eval 'print(docs.read("wufoo.get_current_user"))' --json

Workflow file

Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.

workflow.lua
local wufoo = app.integrations.wufoo
local result = wufoo.get_current_user({})

dump(result)
Run the workflow
kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json
Namespace note. integrations:lua exposes app.integrations.wufoo, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.wufoo.default.* or app.integrations.wufoo.work.* when you configured named credential accounts.

MCP-only Lua

If the script only needs configured MCP servers and does not need Wufoo, use the narrower mcp:lua command.

MCP Lua command
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Wufoo Lua Reference

Namespace: wufoo

Wufoo exposes form, entry, report, user, comment, and webhook resources through API v3. Configure an API key and a subdomain-specific base URL such as https://example.wufoo.com/api/v3. The integration authenticates with HTTP Basic auth using the API key as the username and footastic as the password.

Forms and Fields

local forms = app.integrations.wufoo.list_forms({})

local form = app.integrations.wufoo.get_form({
  form_id = "z1abc234"
})

local fields = app.integrations.wufoo.list_fields({
  form_id = "z1abc234"
})

Use list_fields before submit_entry so agents can use the correct Wufoo field API IDs such as Field1 or Field2.

Entries

local entries = app.integrations.wufoo.list_entries({
  form_id = "z1abc234",
  page = 0,
  page_size = 25,
  filters = {
    Filter1 = "Field1+Is_equal_to+Example",
    SortBy = "DateCreated",
    SortDirection = "DESC"
  }
})

local count = app.integrations.wufoo.count_entries({
  form_id = "z1abc234"
})

local entry = app.integrations.wufoo.get_entry({
  form_id = "z1abc234",
  entry_id = "123"
})

local created = app.integrations.wufoo.submit_entry({
  form_id = "z1abc234",
  fields = {
    Field1 = "Example Person",
    Field2 = "person@example.test"
  }
})

Wufoo API v3 lists entries under forms. get_entry therefore uses the form entries endpoint with an EntryId filter and returns the filtered entries response.

submit_entry sends form-encoded fields because Wufoo expects form-style entry submissions. Returned data is the parsed Wufoo response, with submission errors reported as tool errors.

Comments

local comments = app.integrations.wufoo.list_form_comments({
  form_id = "z1abc234",
  params = { entryId = "123" }
})

local comment_count = app.integrations.wufoo.count_form_comments({
  form_id = "z1abc234"
})

Reports

local reports = app.integrations.wufoo.list_reports({})

local report = app.integrations.wufoo.get_report({
  report_id = "r1abc234"
})

local report_entries = app.integrations.wufoo.list_report_entries({
  report_id = "r1abc234",
  params = { pageSize = 10 }
})

local report_count = app.integrations.wufoo.count_report_entries({
  report_id = "r1abc234"
})

local report_fields = app.integrations.wufoo.list_report_fields({
  report_id = "r1abc234"
})

local widgets = app.integrations.wufoo.list_report_widgets({
  report_id = "r1abc234"
})

Report IDs can be hashes or title identifiers accepted by the Wufoo API.

Users

local users = app.integrations.wufoo.list_users({})
local current = app.integrations.wufoo.get_current_user({})

get_current_user is retained as a compatibility alias for the users endpoint; Wufoo’s API returns a Users collection.

Webhooks

local webhook = app.integrations.wufoo.add_webhook({
  form_id = "z1abc234",
  url = "https://example.test/wufoo",
  handshake_key = "shared-secret",
  metadata = true
})

local deleted = app.integrations.wufoo.delete_webhook({
  form_id = "z1abc234",
  webhook_id = "webhookhash"
})

Webhook creation is a write operation and should be used carefully because Wufoo limits integrations per form.

Generic API

Use generic helpers for official Wufoo API v3 endpoints that do not yet have a dedicated wrapper.

local raw = app.integrations.wufoo.api_get({
  path = "/forms/z1abc234/fields.json",
  params = { system = "true" }
})

local posted = app.integrations.wufoo.api_post({
  path = "/forms/z1abc234/entries.json",
  body = { Field1 = "Example" }
})

Available generic tools: api_get, api_post, api_put, and api_delete. POST and PUT bodies are submitted as form-encoded data.

Raw agent markdown
# Wufoo Lua Reference

Namespace: `wufoo`

Wufoo exposes form, entry, report, user, comment, and webhook resources through
API v3. Configure an API key and a subdomain-specific base URL such as
`https://example.wufoo.com/api/v3`. The integration authenticates with HTTP
Basic auth using the API key as the username and `footastic` as the password.

## Forms and Fields

```lua
local forms = app.integrations.wufoo.list_forms({})

local form = app.integrations.wufoo.get_form({
  form_id = "z1abc234"
})

local fields = app.integrations.wufoo.list_fields({
  form_id = "z1abc234"
})
```

Use `list_fields` before `submit_entry` so agents can use the correct Wufoo
field API IDs such as `Field1` or `Field2`.

## Entries

```lua
local entries = app.integrations.wufoo.list_entries({
  form_id = "z1abc234",
  page = 0,
  page_size = 25,
  filters = {
    Filter1 = "Field1+Is_equal_to+Example",
    SortBy = "DateCreated",
    SortDirection = "DESC"
  }
})

local count = app.integrations.wufoo.count_entries({
  form_id = "z1abc234"
})

local entry = app.integrations.wufoo.get_entry({
  form_id = "z1abc234",
  entry_id = "123"
})

local created = app.integrations.wufoo.submit_entry({
  form_id = "z1abc234",
  fields = {
    Field1 = "Example Person",
    Field2 = "person@example.test"
  }
})
```

Wufoo API v3 lists entries under forms. `get_entry` therefore uses the form
entries endpoint with an `EntryId` filter and returns the filtered entries
response.

`submit_entry` sends form-encoded fields because Wufoo expects form-style entry
submissions. Returned data is the parsed Wufoo response, with submission errors
reported as tool errors.

## Comments

```lua
local comments = app.integrations.wufoo.list_form_comments({
  form_id = "z1abc234",
  params = { entryId = "123" }
})

local comment_count = app.integrations.wufoo.count_form_comments({
  form_id = "z1abc234"
})
```

## Reports

```lua
local reports = app.integrations.wufoo.list_reports({})

local report = app.integrations.wufoo.get_report({
  report_id = "r1abc234"
})

local report_entries = app.integrations.wufoo.list_report_entries({
  report_id = "r1abc234",
  params = { pageSize = 10 }
})

local report_count = app.integrations.wufoo.count_report_entries({
  report_id = "r1abc234"
})

local report_fields = app.integrations.wufoo.list_report_fields({
  report_id = "r1abc234"
})

local widgets = app.integrations.wufoo.list_report_widgets({
  report_id = "r1abc234"
})
```

Report IDs can be hashes or title identifiers accepted by the Wufoo API.

## Users

```lua
local users = app.integrations.wufoo.list_users({})
local current = app.integrations.wufoo.get_current_user({})
```

`get_current_user` is retained as a compatibility alias for the users endpoint;
Wufoo's API returns a `Users` collection.

## Webhooks

```lua
local webhook = app.integrations.wufoo.add_webhook({
  form_id = "z1abc234",
  url = "https://example.test/wufoo",
  handshake_key = "shared-secret",
  metadata = true
})

local deleted = app.integrations.wufoo.delete_webhook({
  form_id = "z1abc234",
  webhook_id = "webhookhash"
})
```

Webhook creation is a write operation and should be used carefully because Wufoo
limits integrations per form.

## Generic API

Use generic helpers for official Wufoo API v3 endpoints that do not yet have a
dedicated wrapper.

```lua
local raw = app.integrations.wufoo.api_get({
  path = "/forms/z1abc234/fields.json",
  params = { system = "true" }
})

local posted = app.integrations.wufoo.api_post({
  path = "/forms/z1abc234/entries.json",
  body = { Field1 = "Example" }
})
```

Available generic tools: `api_get`, `api_post`, `api_put`, and `api_delete`.
POST and PUT bodies are submitted as form-encoded data.
Metadata-derived Lua example
local result = app.integrations.wufoo.get_current_user({})
print(result)

Functions

get_current_user Read

Get the authenticated Wufoo user's profile. Returns account details such as name, email, and organization.

Lua path
app.integrations.wufoo.get_current_user
Full name
wufoo.wufoo_get_current_user
ParameterTypeRequiredDescription
No parameters.
list_users Read

List Wufoo account users visible to the API key.

Lua path
app.integrations.wufoo.list_users
Full name
wufoo.wufoo_list_users
ParameterTypeRequiredDescription
params object no Optional query parameters such as pretty.
list_forms Read

List all forms in your Wufoo account. Returns form identifiers, names, descriptions, and metadata that can be used with other Wufoo tools.

Lua path
app.integrations.wufoo.list_forms
Full name
wufoo.wufoo_list_forms
ParameterTypeRequiredDescription
No parameters.
get_form Read

Get details for a specific Wufoo form by its identifier. Returns the full form definition including fields, settings, and metadata.

Lua path
app.integrations.wufoo.get_form
Full name
wufoo.wufoo_get_form
ParameterTypeRequiredDescription
form_id string yes The form hash or identifier (e.g., "q1w2e3r4t5y6").
list_fields Read

List all fields for a specific Wufoo form. Returns field types, labels, API IDs, and validation rules. Use this to discover field IDs before submitting entries.

Lua path
app.integrations.wufoo.list_fields
Full name
wufoo.wufoo_list_fields
ParameterTypeRequiredDescription
form_id string yes The form hash or unique identifier.
list_entries Read

List entries submitted to a Wufoo form. Supports pagination and optional filters to narrow results. Use the page and pageSize parameters to paginate through large result sets.

Lua path
app.integrations.wufoo.list_entries
Full name
wufoo.wufoo_list_entries
ParameterTypeRequiredDescription
form_id string yes The form hash or identifier to list entries for.
page integer no Page number for pagination (0-based). Default: 0.
page_size integer no Number of entries per page. Default: 25, maximum: 100.
filters object no Optional field filters. Keys are filter parameters (e.g., "Filter1", "Match", "SortBy") and values are the filter values.
count_entries Read

Count entries submitted to a Wufoo form with optional filters.

Lua path
app.integrations.wufoo.count_entries
Full name
wufoo.wufoo_count_entries
ParameterTypeRequiredDescription
form_id string yes The form hash or title identifier.
params object no Optional query parameters such as Filter1, Match, or pretty.
get_entry Read

Find a single Wufoo form entry by form ID and entry ID using the documented form entries endpoint.

Lua path
app.integrations.wufoo.get_entry
Full name
wufoo.wufoo_get_entry
ParameterTypeRequiredDescription
form_id string yes The form hash or title identifier.
entry_id string yes The entry identifier to retrieve.
submit_entry Write

Submit a new entry to a Wufoo form. Provide field values keyed by their API field IDs (e.g., Field1, Field2). Use list_fields to discover the field IDs for a form.

Lua path
app.integrations.wufoo.submit_entry
Full name
wufoo.wufoo_submit_entry
ParameterTypeRequiredDescription
form_id string yes The form hash or unique identifier.
fields object yes Object mapping field API IDs to their values (e.g., {"Field1": "John", "Field2": "john@example.com"}). Use list_fields to discover field IDs.
list_form_comments Read

List comments made on entries for a Wufoo form.

Lua path
app.integrations.wufoo.list_form_comments
Full name
wufoo.wufoo_list_form_comments
ParameterTypeRequiredDescription
form_id string yes The form hash or title identifier.
params object no Optional query parameters such as entryId, pageStart, pageSize, or pretty.
count_form_comments Read

Count comments made on entries for a Wufoo form.

Lua path
app.integrations.wufoo.count_form_comments
Full name
wufoo.wufoo_count_form_comments
ParameterTypeRequiredDescription
form_id string yes The form hash or title identifier.
params object no Optional query parameters such as pretty.
list_reports Read

List all reports in your Wufoo account. Returns report identifiers, names, descriptions, and the forms they are associated with.

Lua path
app.integrations.wufoo.list_reports
Full name
wufoo.wufoo_list_reports
ParameterTypeRequiredDescription
No parameters.
get_report Read

Get details for a specific Wufoo report.

Lua path
app.integrations.wufoo.get_report
Full name
wufoo.wufoo_get_report
ParameterTypeRequiredDescription
report_id string yes The report hash or title identifier.
list_report_entries Read

List entries exposed by a Wufoo report.

Lua path
app.integrations.wufoo.list_report_entries
Full name
wufoo.wufoo_list_report_entries
ParameterTypeRequiredDescription
report_id string yes The report hash or title identifier.
params object no Optional query parameters such as pageStart, pageSize, sort, sortDirection, Filter1, or Match.
count_report_entries Read

Count entries exposed by a Wufoo report.

Lua path
app.integrations.wufoo.count_report_entries
Full name
wufoo.wufoo_count_report_entries
ParameterTypeRequiredDescription
report_id string yes The report hash or title identifier.
params object no Optional query parameters such as pretty.
list_report_fields Read

List field definitions used by a Wufoo report.

Lua path
app.integrations.wufoo.list_report_fields
Full name
wufoo.wufoo_list_report_fields
ParameterTypeRequiredDescription
report_id string yes The report hash or title identifier.
params object no Optional query parameters such as system or pretty.
list_report_widgets Read

List widgets configured on a Wufoo report.

Lua path
app.integrations.wufoo.list_report_widgets
Full name
wufoo.wufoo_list_report_widgets
ParameterTypeRequiredDescription
report_id string yes The report hash or title identifier.
params object no Optional query parameters such as pretty.
add_webhook Write

Add a webhook to a Wufoo form.

Lua path
app.integrations.wufoo.add_webhook
Full name
wufoo.wufoo_add_webhook
ParameterTypeRequiredDescription
form_id string yes The form hash or title identifier.
url string yes The HTTPS endpoint Wufoo should call.
handshake_key string no Optional shared secret sent with webhook payloads.
metadata boolean no Whether Wufoo should include form and field metadata. Default: false.
delete_webhook Write

Delete a webhook from a Wufoo form.

Lua path
app.integrations.wufoo.delete_webhook
Full name
wufoo.wufoo_delete_webhook
ParameterTypeRequiredDescription
form_id string yes The form hash or title identifier.
webhook_id string yes The webhook hash identifier.
api_get Read

Call a documented Wufoo API v3 GET endpoint.

Lua path
app.integrations.wufoo.api_get
Full name
wufoo.wufoo_api_get
ParameterTypeRequiredDescription
path string yes Endpoint path, such as /forms.json.
params object no Optional query parameters.
api_post Write

Call a documented Wufoo API v3 POST endpoint.

Lua path
app.integrations.wufoo.api_post
Full name
wufoo.wufoo_api_post
ParameterTypeRequiredDescription
path string yes Endpoint path, such as /forms/{id}/entries.json.
body object no Form-encoded body fields.
api_put Write

Call a documented Wufoo API v3 PUT endpoint.

Lua path
app.integrations.wufoo.api_put
Full name
wufoo.wufoo_api_put
ParameterTypeRequiredDescription
path string yes Endpoint path, such as /forms/{id}/webhooks.json.
body object no Form-encoded body fields.
api_delete Write

Call a documented Wufoo API v3 DELETE endpoint.

Lua path
app.integrations.wufoo.api_delete
Full name
wufoo.wufoo_api_delete
ParameterTypeRequiredDescription
path string yes Endpoint path, such as /forms/{id}/webhooks/{webhook_id}.json.
params object no Optional request parameters.