Olie Flow AI
By Olie Flow AI
Overview
Olie Flow AI connects Claude to your Olie workspace, the platform where teams run their work as step-by-step funnels. Instead of switching tabs, you can ask Claude what's happening in your operation and act on it in the same conversation. Find and understand work - Search and list projects, or see every project sitting in a given funnel step - Get a project's full picture: current step, owners, form answers, and its history across the funnel - Read a project's content and notes, and add new updates or records to it Move work forward - Move projects between funnel steps. Olie's own step rules and requirements still apply, so Claude can't skip a gate your team configured - Create projects (fully or with a quick create), edit their details, or clone an existing one as a starting point - Read and fill in the forms attached to a project or a funnel step Measure your funnels - Track funnel and step metrics such as volume, conversion, and time spent in each step - See how projects flow between steps to spot bottlenecks Example prompts - "Which projects are stuck in Proposal sent, and for how long?" - "Summarize the history of project LA-2 and add a note that the client approved the budget." - "Move LA-1 to Contact and show me this month's conversion for the Leads funnel." Access and security Sign-in uses OAuth 2.1 with your existing Olie account. During consent you pick a single workspace, and Claude can only reach that workspace, always within your own permissions in Olie. Read-only tools run without extra prompts. Anything that changes data is marked as a write action, so Claude asks for your confirmation first. Requirements An Olie account with access to at least one workspace. Setup takes under a minute: add the connector, sign in, choose your workspace, and start asking.
Tools
create-contact-tool
ChatGPTcreate-project-tool
ChatGPTdelete-contact-tool
ChatGPTdelete-customer-tool
ChatGPTedit-contact-tool
ChatGPTedit-project-tool
ChatGPTget-contact-details-tool
ChatGPTget-customer-details-tool
ChatGPTget-form-answers-tool
ChatGPTid (the field id used when writing), label, answer (the stored value, or null when the field was never answered at this target), model (the short name of the pivot the answer came from, useful to confirm you read the place you meant), answered_by and updated_at. For matrix fields, answer is a JSON-encoded object keyed by row then column — e.g. {"atend":{"nota":"Ok","obs":"atendeu bem"}} — and each entry also includes answer_markdown: a Markdown table with the row and column labels instead of the keys (null when unanswered). Prefer answer_markdown when reading, summarizing or summing a matrix. The row/column keys and cell types in the field's options from get-form-tool are only needed to write a matrix answer with set-form-answers-tool. For rich_text fields, each entry also includes answer_markdown: the TipTap document converted to Markdown for readable consumption (null when unanswered). Prefer answer_markdown when summarizing or quoting rich text; keep writing TipTap JSON via set-form-answers-tool. For attachment fields, answer is a JSON-encoded list of files, each with a url: pass that url as file_url to read-file-tool to read the file itself. Get target from get-model-dynamic-forms-tool. The same form read at a different target returns a different set of answers, so an empty result means "not answered here", not "not answered anywhere". Field types, options and required flags are NOT returned here. Call get-form-tool with the form_id of the target when you need them — always before writing with set-form-answers-tool. Note: the first read of a funnel-step or funnel form for a project may create the pivot row that holds those answers.get-form-tool
ChatGPTget-funnel-step-transitions-tool
ChatGPTget-model-dynamic-forms-tool
ChatGPTmodel_form (the form of the record itself), forms_from_project_funnel, forms_from_project_funnel_steps and forms_from_project_loose_forms. Only projects have the last three; contact, customer and user records return model_form alone. A group that is absent or empty means no form is attached there. Every entry is already a valid target — copy the whole object into target of get-form-answers-tool or set-form-answers-tool without reshaping it. This tool lists where forms are, not what is in them: use get-form-tool with a returned form_id for the fields, types and options, and get-form-answers-tool for the current answers. For a project you have already fetched with get-project-details-tool, the same forms and answers are already in its all_forms_answers — call this tool when you only need the form list, or when the record is a contact, a customer or a user.get-project-details-tool
ChatGPTget-project-funnel-metrics-tool
ChatGPTfile_url: pass it to read-file-tool to read the file itself.get-project-media-tool
ChatGPTchannel_id to retrieve content from a specific communication channel instead. Returns paginated items. Items that carry a file have a file_url: pass it to read-file-tool to read the file itself.get-project-step-metrics-tool
ChatGPTmetrics, an array with step_id and total time in seconds for each step the project has been through, and attachments, the files attached to those steps (manuals, templates, guides) with their step_id. Pass an attachment's file_url to read-file-tool to read the file itself (attachments with extension link are external links, not files).get-projects-in-step-tool
ChatGPTget-user-tool
ChatGPTindex-contacts-tool
ChatGPTindex-project-funnels-tool
ChatGPTindex-projects-tool
ChatGPTme-tool
ChatGPTmove-project-to-funnel-step-tool
ChatGPTquick-create-project-tool
ChatGPTsave-media-tool
ChatGPTproject_identifier (CODE or UUID). For another project, call this tool again.set-form-answers-tool
ChatGPTtarget comes from get-model-dynamic-forms-tool. form_answers is a list of {"id": <form field id>, "answer": <value>}; the field ids come from get-form-answers-tool or from edges[].id of get-form-tool. Call get-form-tool first: what a field accepts depends on its type and options. This is a partial write — fields you do not send keep their current value, so send only what changes. Answering a required field with an empty value is rejected, unless that field is conditional. A field id that does not belong to this form is skipped, and a value sent to a counter field is discarded. When that happens, message reports how many of the ids you sent were applied and lists the ignored ones; otherwise it is a plain success string. Still compare the returned answers to confirm each value.





