Skip to main content

Proposal templates

The templates proposals are born from, with one marked as the default.

CommandHTTPDescription
proposal-templates listGET /v1/proposal_templatesList proposal templates
proposal-templates createPOST /v1/proposal_templatesCreate a proposal template
proposal-templates getGET /v1/proposal_templates/{id}Get a proposal template
proposal-templates updatePATCH /v1/proposal_templates/{id}Update a proposal template
proposal-templates deleteDELETE /v1/proposal_templates/{id}Delete a proposal template
proposal-templates activatePOST /v1/proposal_templates/{id}/activateActivate a proposal template
proposal-templates deactivatePOST /v1/proposal_templates/{id}/deactivateDeactivate a proposal template
proposal-templates duplicatePOST /v1/proposal_templates/{id}/duplicateDuplicate a proposal template
proposal-templates set-defaultPOST /v1/proposal_templates/{id}/set-defaultSet the template as default

Examples​

--params carries query and path parameters (id, page, filters); --json carries the request body; --fields limits which fields come back — worth using on every list/get to save context. See Global flags for the full reference.

# List proposal templates
kobana billing proposal-templates list \
--fields "id,public_id,external_id,name,description"

# Get a proposal template
kobana billing proposal-templates get \
--params '{"id": "PROPOSAL_TEMPLATE_ID"}'

# Create a proposal template
kobana billing proposal-templates create \
--json '{"name": "NAME", "googleDocId": "GOOGLEDOCID"}'

# Update a proposal template
kobana billing proposal-templates update \
--params '{"id": "PROPOSAL_TEMPLATE_ID"}' \
--json '{"name": "NAME", "description": "DESCRIPTION", "documentType": "google_doc"}'

# Activate a proposal template
kobana billing proposal-templates activate \
--params '{"id": "PROPOSAL_TEMPLATE_ID"}'

# Delete a proposal template
kobana billing proposal-templates delete \
--params '{"id": "PROPOSAL_TEMPLATE_ID"}' \
--dry-run

Next steps​