← Canoewell
DocumentationPrivacyEULASupport

Canoewell: setup and user guide

Canoewell is a Zendesk Support app by Great Work LLC. Support: hello@greatwork.company (reply within one business day).

What Canoewell does

Canoewell shows the ticket requester's Paddle Billing customer in the ticket sidebar (and on user profiles): subscriptions with every item, discounts and scheduled changes, past-due bills and why the last payment failed, payments and invoices with invoice PDFs, refunds waiting for Paddle, and credit balance. Agents you allow can request a refund, credit an invoice, cancel or undo a scheduled cancellation, pause or resume, apply a discount, or add Paddle's update-card link to a reply. Every action is confirmed first and logged on the ticket as an internal note with a tag.

Price: $10 per agent per month on the Standard plan, with a 14-day trial (Zendesk asks for a card at install). Canoewell works with Paddle Billing, not Paddle Classic. It is not made or endorsed by Paddle. Paddle is a trademark of Paddle.com Market Limited.

1. Create an API key in Paddle

  1. Sign in to Paddle and open My account > Settings > Authentication, then the API keys tab. For a sandbox account, do the same in the sandbox dashboard.
  2. Click New API key and name it "Canoewell for Zendesk".
  3. Give it these permissions:
PermissionUsed for
customer.readFinding the customer by email or id, and their credit balance
subscription.readShowing subscriptions, and the update-card link
transaction.readPayments, invoices, refundable amounts, invoice PDFs
adjustment.readRefunds and credits and their approval status (optional: without it the sidebar still works)
discount.readLooking up a discount code
subscription.writeCancel, pause, resume, remove a scheduled change, apply a discount (only if agents take these actions)
adjustment.writeRefund requests and invoice credits (only if agents take these actions)
  1. Set an expiry. Paddle keys expire (90 days by default, one year at most); put a reminder in your calendar to paste a new key before it runs out.
  2. Copy the key. Paddle shows it only once.

2. Install and connect

  1. Install Canoewell from the Zendesk Marketplace and pick the Standard plan.
  2. Paddle API key: paste the key. Zendesk keeps it as a secure setting; it never reaches an agent's browser.
  3. Sandbox: turn on if it is a sandbox key (it starts with pdl_sdbx_).
  4. Save. Open a ticket from a subscriber.

3. Settings

SettingWhat it does
Account labelName for this Paddle account in the switcher and in ticket notes. For accounts 2 and 3, the label turns the account on.
Accounts 2 and 3 (key, Sandbox, label, brands)Connect more Paddle accounts, for example one per product. List Zendesk brand ids so a brand's tickets open its account first. Agents can switch in the sidebar.
User field with the Paddle customer idThe key of a Zendesk user field that holds the Paddle customer id (ctm_...), if you store it. Matching by email always runs as well.
Who may take actionsadmin (default), agent for every agent, custom role ids, or group:<id>, separated by commas. Everyone else sees the sidebar read-only.
Allow refund requests, invoice credits, cancellations, pause and resume, discounts, the update-card linkTurn each action type on or off.
Let non-admins cancel immediatelyOff by default. Admins can always cancel immediately.
Largest refund or credit without an adminA limit for non-admins in the transaction's currency. 0 means no limit.
Refund reasonsYour own list of reasons agents pick from. Stored in Paddle with the refund and in the ticket note.
Discounts agents may applyDiscount codes non-admins may apply. Empty allows any active discount.

4. Using it

Finding the customer. Canoewell looks up the requester by every email address on their Zendesk profile in one request (Paddle matches emails exactly, so it tries each as written and in lowercase), plus the user field if set. When several customers match, pick one from the list. No match: type an email or a ctm_ id in the Find box.

What you see.

  • Problems first: past-due bills with the amount owed and why the last payment attempt failed, a card that has expired or is about to, and refunds waiting for Paddle's approval.
  • Subscriptions: each item with seats, price and interval, the discount, status (Active, Trial, Past due, Cancelling, Pause scheduled, Paused, Canceled) and the next date that matters.
  • Payments and invoices: status (Paid, Partly refunded, Refunded, Refund pending, Past due, Invoice due, Canceled), what is still refundable, an Invoice PDF link and Open in Paddle.
  • Refunds and credits with their Paddle status (Awaiting Paddle, Approved, Rejected by Paddle).

Actions. Each opens a panel that states exactly what will happen. Nothing is sent until you confirm.

  • Refund: the whole transaction, or chosen lines and amounts (amounts include tax; Paddle works out the tax part). Pick a reason. Paddle reviews most refunds on live accounts before money moves; refunds under $400 on verified accounts are often approved at once, and sandbox refunds are approved within ten minutes. While a refund waits, Paddle accepts no other refund or credit on that transaction.
  • Credit invoice: for invoices (manually-collected transactions) that are billed or past due. Lowers what the customer owes at once.
  • Cancel: at the end of the billing period (they keep access until then, and you can undo it), or immediately (admins, or everyone if you allow it). Cancelling refunds nothing; a canceled subscription cannot be reinstated.
  • Keep subscription (remove cancellation), Remove scheduled pause: removes a scheduled change before it happens.
  • Pause: now or at the end of the billing period, with an optional resume date. Choose what happens on resume: start a new billing period and charge it, or continue the current one.
  • Resume now: for a paused subscription.
  • Apply discount: type a code or dsc_ id and look it up. It applies from the next bill.
  • Send update-card link: adds Paddle's customer portal link to your reply. The customer confirms their email with Paddle and changes the card there; for a past-due subscription, Paddle then collects what is owed. The link expires, so send the reply soon.

Logged. After Paddle accepts an action, the ticket gets an internal note (amounts, Paddle ids, reason, agent, your note) and a tag: canoewell_refund_requested, canoewell_credit, canoewell_cancel, canoewell_schedule_removed, canoewell_pause, canoewell_resume, canoewell_discount or canoewell_payment_link. Use the tags in views and reports. If the ticket note cannot be written (for example a closed ticket), the sidebar shows the note text to paste.

Sent once. Paddle Billing has no idempotency keys, so Canoewell re-reads Paddle just before sending, sends each action once and never retries it after a lost answer. If the connection drops, it re-reads Paddle to find out what happened: if the action went through, it is logged normally; if it cannot tell, it asks you to check and Refresh before trying again.

5. What stays with Paddle

Paddle is the merchant of record for your sales. Canoewell does not approve refunds, move money, retry a failed payment, change tax, edit or reissue an invoice, give promotional credit, change plans, quantities or billing dates, or reinstate a canceled subscription. Paddle issues the invoices and credit notes your customers receive.

6. Data and security

  • Canoewell runs in the agent's browser. There is no Great Work server and no Great Work account.
  • The key is a Zendesk secure setting, only usable in a request header, and Zendesk only sends it to Paddle's API (api.paddle.com, sandbox-api.paddle.com).
  • Reads happen only while the sidebar is open. Nothing is stored, cached, exported or sent to Great Work. No AI.
  • Uninstalling deletes the settings and key; notes and tags already written stay. Revoke the key in Paddle too.

7. Troubleshooting

MessageWhat to do
"did not accept the API key"The key expired, was revoked, or the Sandbox switch does not match the key (sandbox keys start with pdl_sdbx_). Paste a new key or flip the switch.
"does not have the permission"Add the permission from section 1 to the key in Paddle.
"Paddle Billing is not enabled"The key belongs to a Paddle Classic account. Canoewell supports Paddle Billing only.
"No Paddle customer"The requester's email differs from Paddle's. Use the Find box, or set up the user field mapping.
A Confirm button is greyed outThe red box says why: over the refundable amount, over your limit, a refund already waiting for Paddle, a discount not on your list.
"locks a subscription for 30 minutes"Paddle does not change a subscription in the 30 minutes before a renewal or while a payment processes. Try again later.
"Check Paddle before trying again"The connection dropped and Canoewell could not confirm the result. Refresh, look at the transaction or subscription, then decide.
I can't see any actionsYour role or group is not in "Who may take actions", the action type is off, or this is a new ticket or a user profile (actions need a ticket).

Still stuck? Email hello@greatwork.company with the ticket number and the Paddle ids from the note. Never send card details or API keys.