Better proposals

Learn how to use Better proposals with Composio

Overview

SLUG: BETTER_PROPOSALS

Description

Better Proposals is a web-based proposal creation tool that enables users to send professionally designed proposals.

Authentication Details

generic_api_key
stringRequired

Connecting to Better proposals

Create an auth config

Use the dashboard to create an auth config for the Better proposals toolkit. This allows you to connect multiple Better proposals accounts to Composio for agents to use.

1

Select App

Navigate to [Better proposals](https://platform.composio.dev/marketplace/Better proposals).

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Better proposals Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4better_proposals_auth_config_id = "ac_YOUR_BETTER_PROPOSALS_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": user_api_key}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Better proposals for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, better_proposals_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the [Better proposals toolkit’s playground](https://app.composio.dev/app/Better proposals)

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["BETTER_PROPOSALS"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Get All Document Types

Description

Tool to retrieve a paginated list of all document types. use when you need to display or select a document type id.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10

Action Response

data
arrayRequired
error
string
message
string
status
stringRequired
successful
booleanRequired

Tool Name: Create Company

Description

Tool to create a new company. use after confirming the company does not already exist.

Action Parameters

CompanyName
stringRequired

Action Response

data
objectRequired
error
string
message
string
status
stringRequired
successful
booleanRequired

Tool Name: Create Document Type

Description

Tool to create a new document type. use after confirming the desired type name does not already exist.

Action Parameters

TypeColour
string
TypeName
stringRequired

Action Response

data
objectRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Create Proposal Cover

Description

Tool to create a new proposal cover design. use when you need a custom cover design before sending out a proposal. use after finalizing cover settings.

Action Parameters

BGColour
string
BrandID
integer
ButtonStyle
string
ButtonText
string
CoverName
string
Headline
string
Subheader
string
TextAlign
string
TextColour
string

Action Response

data
objectRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get All Companies

Description

Tool to retrieve a paginated list of all companies. use when listing available companies for display or selection.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10

Action Response

data
arrayRequired
error
string
message
string
status
stringRequired
successful
booleanRequired

Tool Name: Get All Currencies

Description

Tool to retrieve a paginated list of all currencies. use when listing available currency options before selection.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10

Action Response

data
arrayRequired
error
string
message
string
status
stringRequired
successful
booleanRequired

Tool Name: Get All Document Types

Description

Tool to retrieve a paginated list of all document types. use when you need to display or select a document type id.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10

Action Response

data
arrayRequired
error
string
message
string
status
stringRequired
successful
booleanRequired

Tool Name: Get All Proposals

Description

Tool to retrieve a paginated list of all proposals. use when you need to fetch proposals list after validating credentials.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10
type
integer

Action Response

data
arrayRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get All Quotes

Description

Tool to retrieve a paginated list of all quotes. use after setting pagination parameters.

Action Parameters

page
integer
per_page
integer

Action Response

data
arrayRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get All Templates

Description

Tool to retrieve a paginated list of all templates. use when you need to list available templates for selection.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10

Action Response

data
arrayRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Brand Settings

Description

Tool to retrieve settings for the default brand. use when you need default-brand configuration (colors, tax, name, etc.) before creating or customizing documents.

Action Parameters

Action Response

data
objectRequired
error
string
message
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Company

Description

Tool to retrieve details of a specific company. use when you need company metadata by id.

Action Parameters

company_id
stringRequired

Action Response

data
objectRequired
error
string
message
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Currency

Description

Tool to retrieve details of a specific currency. use when you need currency metadata by id.

Action Parameters

currency_id
stringRequired

Action Response

data
objectRequired
error
string
message
string
status
stringRequired
successful
booleanRequired

Tool Name: Get New Proposals

Description

Tool to retrieve all new proposals. use after validating credentials when you need only newly created proposals.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10
type
integer

Action Response

data
arrayRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Opened Proposals

Description

Tool to retrieve all opened proposals. use when you need proposals that recipients have opened.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10
type
integer

Action Response

data
arrayRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Paid Proposals

Description

Tool to retrieve all paid proposals. use when you need to list proposals that have been paid.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10
type
integer

Action Response

data
arrayRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Proposal Count

Description

Tool to retrieve the total count of proposals. use when you need to know how many proposals exist.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Quote

Description

Tool to retrieve details of a specific quote. use when you need full quote data by id.

Action Parameters

quote_id
stringRequired

Action Response

data
objectRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Sent Proposals

Description

Tool to retrieve all sent proposals. use after dispatching proposals to clients to list them.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10
type
integer

Action Response

data
arrayRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Settings

Description

Tool to retrieve current account settings. use when you need default currency, tax, and timezone configuration before creating proposals.

Action Parameters

Action Response

data
objectRequired
error
string
message
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Signed Proposals

Description

Tool to retrieve all signed proposals. use when you need to list proposals clients have signed after confirming credentials.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 10
type
integer

Action Response

data
arrayRequired
error
string
status
stringRequired
successful
booleanRequired

Tool Name: Get Template Details

Description

Tool to retrieve details of a specific template. use after selecting the template id to fetch metadata.

Action Parameters

template_id
stringRequired

Action Response

data
objectRequired
error
string
status
stringRequired
successful
booleanRequired