ProductOSDocs

Entity reference · v1

win-loss

WL-NNNNNNtable win_loss_recordssoft delete

Per-deal won/lost outcome with primary reason and contributing factors.

Endpoints

GET/api/v1/win-loss
POST/api/v1/win-loss
GET/api/v1/win-loss/{id}
PATCH/api/v1/win-loss/{id}
DELETE/api/v1/win-loss/{id}
POST/api/v1/win-loss/{id}/restore

Writable fields

* required on create. PATCH treats every field as optional.

FieldTypeConstraintsNotes
titlestring
account_iduuid
outcome*stringwon | lost
deal_valuefloat
competitor_iduuid
primary_reasonstring
contributing_factorsjson
lessonstext
close_datedate
is_draftboolean
metadatajson

Listing & filtering

  • Pagination: ?limit=50&offset=0 · max limit 200
  • Default sort: ?sort=close_date&order=desc
  • Sortable fields: created_at · updated_at · close_date · deal_value · id_number
  • Search (?q=): title, primary_reason, lessons
  • Filters: ?outcome= ?competitor_id= ?account_id= , repeat any filter to OR multiple values
  • Trash: hidden by default; pass ?include_deleted=true

Examples

curlbash
curl 'https://productos.ca/api/v1/win-loss?limit=10' \
  -H "Authorization: Bearer $TOKEN"

Try it out

Paste a token and hit a real endpoint. The request goes from your browser straight to /api/v1/win-loss. The token is held in this page only for the request and is never stored.

Try it out

Issue tokens in Settings → API tokens. Token never leaves this page.

GET/api/v1/win-loss?limit=3

Generated from the API's entity configuration. This page is rebuilt on every deploy, so it always matches the live API.