home / skills / composiohq / awesome-claude-skills / better-proposals-automation

better-proposals-automation skill

/better-proposals-automation

This skill automates Better Proposals tasks via Rube MCP, ensuring up-to-date tool schemas are discovered before execution.

npx playbooks add skill composiohq/awesome-claude-skills --skill better-proposals-automation

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.0 KB
---
name: better-proposals-automation
description: "Automate Better Proposals tasks via Rube MCP (Composio). Always search tools first for current schemas."
requires:
  mcp: [rube]
---

# Better Proposals Automation via Rube MCP

Automate Better Proposals operations through Composio's Better Proposals toolkit via Rube MCP.

**Toolkit docs**: [composio.dev/toolkits/better_proposals](https://composio.dev/toolkits/better_proposals)

## Prerequisites

- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Better Proposals connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `better_proposals`
- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas

## Setup

**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.

1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `better_proposals`
3. If connection is not ACTIVE, follow the returned auth link to complete setup
4. Confirm connection status shows ACTIVE before running any workflows

## Tool Discovery

Always discover available tools before executing workflows:

```
RUBE_SEARCH_TOOLS
queries: [{use_case: "Better Proposals operations", known_fields: ""}]
session: {generate_id: true}
```

This returns available tool slugs, input schemas, recommended execution plans, and known pitfalls.

## Core Workflow Pattern

### Step 1: Discover Available Tools

```
RUBE_SEARCH_TOOLS
queries: [{use_case: "your specific Better Proposals task"}]
session: {id: "existing_session_id"}
```

### Step 2: Check Connection

```
RUBE_MANAGE_CONNECTIONS
toolkits: ["better_proposals"]
session_id: "your_session_id"
```

### Step 3: Execute Tools

```
RUBE_MULTI_EXECUTE_TOOL
tools: [{
  tool_slug: "TOOL_SLUG_FROM_SEARCH",
  arguments: {/* schema-compliant args from search results */}
}]
memory: {}
session_id: "your_session_id"
```

## Known Pitfalls

- **Always search first**: Tool schemas change. Never hardcode tool slugs or arguments without calling `RUBE_SEARCH_TOOLS`
- **Check connection**: Verify `RUBE_MANAGE_CONNECTIONS` shows ACTIVE status before executing tools
- **Schema compliance**: Use exact field names and types from the search results
- **Memory parameter**: Always include `memory` in `RUBE_MULTI_EXECUTE_TOOL` calls, even if empty (`{}`)
- **Session reuse**: Reuse session IDs within a workflow. Generate new ones for new workflows
- **Pagination**: Check responses for pagination tokens and continue fetching until complete

## Quick Reference

| Operation | Approach |
|-----------|----------|
| Find tools | `RUBE_SEARCH_TOOLS` with Better Proposals-specific use case |
| Connect | `RUBE_MANAGE_CONNECTIONS` with toolkit `better_proposals` |
| Execute | `RUBE_MULTI_EXECUTE_TOOL` with discovered tool slugs |
| Bulk ops | `RUBE_REMOTE_WORKBENCH` with `run_composio_tool()` |
| Full schema | `RUBE_GET_TOOL_SCHEMAS` for tools with `schemaRef` |

---
*Powered by [Composio](https://composio.dev)*

Overview

This skill automates Better Proposals tasks through Composio's Better Proposals toolkit using Rube MCP. It provides a reliable pattern for discovering tools, validating connections, and executing toolkit operations programmatically. The skill emphasizes always searching for current tool schemas before running any action.

How this skill works

It first calls RUBE_SEARCH_TOOLS to retrieve available tool slugs, input schemas, and recommended execution plans. Then it verifies the Better Proposals connection via RUBE_MANAGE_CONNECTIONS and runs actions using RUBE_MULTI_EXECUTE_TOOL (or RUBE_REMOTE_WORKBENCH for bulk runs), supplying schema-compliant arguments, a session_id, and a memory object. The workflow handles pagination, session reuse, and enforces schema compliance to avoid runtime errors.

When to use it

  • Create, update, or send proposals programmatically from an automation workflow
  • Bulk operations like batch sends, templating, or mass updates via the remote workbench
  • Integrations that must fetch current tool schemas before running actions
  • Workflows that require reliable connection state checks and session reuse
  • Automated reporting or data syncs between Better Proposals and other systems

Best practices

  • Always call RUBE_SEARCH_TOOLS first — tool slugs and field schemas can change
  • Verify toolkit connection with RUBE_MANAGE_CONNECTIONS and ensure status is ACTIVE before executing tools
  • Use exact field names and types returned by the search results to stay schema-compliant
  • Include a memory object (even {}) in RUBE_MULTI_EXECUTE_TOOL calls
  • Reuse session_id within a workflow; generate a new session for distinct workflows
  • Handle pagination tokens in responses and continue fetching until complete

Example use cases

  • Automate proposal creation from CRM data: discover the create-proposal tool, map CRM fields, execute with session and memory
  • Bulk-send proposals using RUBE_REMOTE_WORKBENCH and run_composio_tool() for high-volume campaigns
  • Update proposal templates or line items across multiple templates by searching schema and executing update tools
  • Sync Better Proposals client data to an external database by paginating through list endpoints and writing results to storage
  • Generate automated reports of proposal statuses and pipeline metrics using discovered report/list tools

FAQ

What if RUBE_MANAGE_CONNECTIONS shows the toolkit is not ACTIVE?

Follow the auth link returned by RUBE_MANAGE_CONNECTIONS to complete the connection flow, then recheck until the toolkit status is ACTIVE before running workflows.

What should I do if a tool fails with a schema error?

Re-run RUBE_SEARCH_TOOLS to get the current schema, update your arguments to match exact field names/types, and ensure you included memory and the correct session_id.