/
/
Bill Teamwork.com project time in Rillet in one pass
For finance teams who want a project's billable Teamwork.com time turned into a Rillet invoice, with a double billing check, by their AI assistant.
On this page
Connector
Connect Teamwork.com, pick your AI tool and paste the prompt.
The problem
Billing project time means four exports and a lot of typing
Billing a project means exporting Teamwork.com time, grouping it by rate, finding the Rillet customer and product and typing the lines in. It is slow, and easy to bill a period twice or miss a rate that was never set.
Without PopdockAI
- Export Teamwork.com time and group it by rate
- Find the matching Rillet customer and product
- Check past invoices for the same period
- Type every line in and hope nothing overlaps
With PopdockAI
- Billable time is grouped by rate and the customer matched with the rule shown
- Existing invoice lines that overlap the period are checked first
- Zero-rate time is set aside for you
- The invoice is created only after you confirm, with no new customers or products
The prompt
Use this prompt
Copy it into any AI tool connected to PopdockAI. Swap the values in braces for your own.
**Objective:** Turn the billable Teamwork time on `{project-name}` between `{from-date}` and `{to-date}` (default today) into one Rillet invoice, billed as product `{product-name}`, and create it only after the user confirms.
**Step 1: Find the project and client in Teamwork**
Call `teamwork-get-projects` with `name.contains` = `{project-name}`. If more than one project matches, list them and stop. Keep `project-id`, `company-id`, `company-name` and `is-billable`. If `is-billable` is false, warn the user before continuing.
**Step 2: Read the billable time**
Call `teamwork-get-time` with `project-id`, `is-billable` = true, `time-logged.from` = `{from-date}` and `time-logged.to` = `{to-date}`. Group entries by `billable-rate`. For each rate, total the hours (`minutes` / 60, rounded to two decimals) and `billable-total`.
**Step 3: Find the customer and product in Rillet**
Match the Teamwork company to a Rillet customer. Call `rillet-get-customers` (it takes no filters and returns every customer) and compare its `name` and `invoicing-name` to the Teamwork company `name`, ignoring case, punctuation and legal suffixes such as Inc, LLC, Ltd, Corp and GmbH. If no name matches, call `teamwork-get-people` with the Teamwork `company-id` and compare each contact's `email` with `email` from `rillet-get-customer-emails`; the same address, or the same company email domain (never a public domain such as gmail.com or outlook.com), is a match. State which rule produced the match. If there is no match, stop: the customer must exist in Rillet first, and this prompt does not create customers.
Call `rillet-get-products` and pick the product whose `name` matches `{product-name}`. If `{product-name}` is blank, pick an active product whose `price-type` or name indicates hourly services. If none fits or several do, list the candidates and ask the user to choose.
**Step 4: Check for double billing**
Call `rillet-get-invoice-lines` and look for lines for this customer whose revenue period overlaps the billing period or whose `line-description` names the project. If any exist, show them and ask whether to continue.
**Step 5: Draft and confirm**
Show the draft: customer, invoice date (today), product, and one line per billing rate with quantity = hours, unit amount = rate, total, description "<project name> time, <from-date> to <to-date>", and revenue start and end = the billing period. Rillet allows three lines on create; if there are more than three rates, stop and ask the user how to combine them. Show the Teamwork total next to the draft total. Ask the user to confirm.
**Step 6: Create and confirm**
Only after an explicit yes, call `rillet-add-invoice` once with `customer-id`, `invoice-date`, and for each line `lineN-product-id`, `lineN-quantity`, `lineN-unit-amount`, `lineN-currency`, `lineN-description`, `lineN-revenue-start`, `lineN-revenue-end`. Report the returned invoice `id`.
**Rules & Guidelines:**
* Tools starting teamwork- are on the teamwork MCP server; tools starting rillet- are on the rillet MCP server. If a tool from either server is unavailable, say which server is not connected and stop.
* The only write allowed is one `rillet-add-invoice` call after confirmation. Do not call `rillet-set-invoice-sent-status`, `rillet-add-customer`, `rillet-add-product`, or any teamwork- tool that creates or updates anything (such as `teamwork-update-time-entry`).
* Never convert between currencies. If Teamwork and Rillet amounts are in different currencies, report both side by side and say the comparison is not like for like. Teamwork's site currency is `currency-code` from `teamwork-get-account`.
**Validation:**
* If there is no billable time in the period, say so and stop without drafting.
* If any rate is zero, leave those entries out of the draft and list them for the user.
* If `rillet-add-invoice` returns an error, show it and do not retry with changed values unless the user asks.Who it's for
One answer, three teams that use it
Billing teams
Bill a project without rekeying time
Draft lines come straight from Teamwork.com time grouped by rate, set beside the project total so you can check before it is created.
Invoice the Contoso onboarding project in Rillet for October's billable Teamwork.com time.
Finance controllers
Catch overlapping invoices
Rillet invoice lines that overlap the period or name the project are found before drafting, so the same time is not billed twice.
Has the Fabrikam portal project already been billed in Rillet for September? If not, draft the invoice.
Project managers
Spot time with no rate
Zero-rate time is set aside and shown, so missing rates are fixed rather than quietly left off the invoice.
Bill this month's Teamwork.com time on the Northwind Traders project in Rillet using the Consulting product.
How it works
What PopdockAI does when you ask
You name the project and period, and your AI assistant drafts the Rillet invoice from Teamwork.com time. It checks for overlap first and creates the invoice only after you confirm.
01
Ask
You name the project, period and optionally the product.
02
Read
It groups billable time by rate and matches the Rillet customer and product.
03
Check
It looks for Rillet invoice lines that overlap the period or name the project.
04
Confirm
You review the draft, then the invoice is created.
What PopdockAI provides
The tools behind the answer
Ready made tools for Teamwork.com and one secure connection to your AI tool. No code, no exports.
teamwork-com-get-projects
teamwork-com-get-time
rillet-get-customers
teamwork-com-get-people
rillet-get-customer-emails
rillet-get-products
rillet-get-invoice-lines
rillet-add-invoice
teamwork-com-get-account
This report is built from Get data tools only. PopdockAI applies the row, field and parameter rules your admin sets, and every query is written to the audit trail.
The outcome
Project time billed correctly in one pass
Related use cases
More ways to put this data to work
One prompt template with infinite possibilities.
Your AI assistant adapts its approach, tone, and capabilities to match each unique context while you maintain a single, manageable workflow.
Join forward-thinking companies that are transforming their operations with intelligent, secure AI automation.

.webp)
