curl --request POST \
--url https://api.example.com/api/proposals/{proposal_id}/generate-proposal-template \
--header 'Content-Type: application/json' \
--data '
{
"selected_sections": [
{}
],
"user_comments": {}
}
'{}curl --request POST \
--url https://api.example.com/api/proposals/{proposal_id}/generate-proposal-template \
--header 'Content-Type: application/json' \
--data '
{
"selected_sections": [
{}
],
"user_comments": {}
}
'{}Documentation Index
Fetch the complete documentation index at: https://mintlify.com/AllianceBioversityCIAT/alliance-IGAD/llms.txt
Use this file to discover all available pages before exploring further.
/generate-ai-proposal-template instead.PROP-YYYYMMDD-XXXX)["Executive Summary", "Technical Approach", "Budget"]{"Technical Approach": "Focus on cloud-native architecture"}.docx file) with:
application/vnd.openxmlformats-officedocument.wordprocessingml.documentattachment; filename=proposal_template_{proposal_code}.docxcurl -X POST "https://api.igad-innovation.org/api/proposals/PROP-20260304-A1B2/generate-proposal-template" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"selected_sections": [
"Executive Summary",
"Problem Statement",
"Technical Approach",
"Work Plan",
"Budget"
],
"user_comments": {
"Technical Approach": "Please emphasize sustainability and scalability"
}
}' \
--output proposal_template.docx
const generateTemplate = async (
proposalId: string,
selectedSections: string[],
userComments?: Record<string, string>
) => {
const response = await fetch(
`/api/proposals/${proposalId}/generate-proposal-template`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
selected_sections: selectedSections,
user_comments: userComments
})
}
)
if (!response.ok) {
throw new Error('Failed to generate template')
}
// Download the file
const blob = await response.blob()
const url = window.URL.createObjectURL(blob)
const a = document.createElement('a')
a.href = url
a.download = `proposal_template_${proposalId}.docx`
document.body.appendChild(a)
a.click()
window.URL.revokeObjectURL(url)
document.body.removeChild(a)
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Technical Approach
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Purpose:
Describe your technical solution and implementation strategy.
Guidance:
• Explain your chosen technology stack
• Describe system architecture
• Outline implementation phases
• Address scalability and security
Key Questions to Address:
• What technologies will you use and why?
• How will the system handle growth?
• What are the technical risks and mitigations?
User Note:
Please emphasize sustainability and scalability
[Space for your response]
ProposalTemplateGenerator service:
from app.tools.proposal_writer.proposal_template_generation.service import (
ProposalTemplateGenerator
)
service = ProposalTemplateGenerator()
buffer = service.generate_template(
proposal_code=proposal_code,
selected_sections=request.selected_sections or [],
rfp_analysis=proposal.get("rfp_analysis"),
concept_document=proposal.get("concept_document_v2"),
structure_workplan_analysis=proposal.get("structure_workplan_analysis"),
reference_proposals_analysis=proposal.get("reference_proposals_analysis"),
existing_work_analysis=proposal.get("existing_work_analysis"),
user_comments=request.user_comments
)
| Analysis Type | Used For |
|---|---|
| RFP Analysis | Requirements, evaluation criteria |
| Concept Document | Project overview, initial approach |
| Structure Workplan | Section titles, guidance, questions |
| Reference Proposals | Best practice examples |
| Existing Work | Organizational context |
{
"detail": "Structure and workplan analysis must be completed before generating template."
}
{
"detail": "RFP analysis must be completed before generating template."
}
{
"detail": "Concept document must be generated before generating template."
}
{
"detail": "Access denied"
}
{
"detail": "Proposal not found"
}
{
"detail": "Failed to generate template: [error details]"
}
{
"selected_sections": []
}
{}
{
"selected_sections": [
"Executive Summary",
"Problem Statement",
"Proposed Solution",
"Budget"
]
}
{
"selected_sections": [
"Technical Approach",
"Sustainability Plan"
],
"user_comments": {
"Technical Approach": "Emphasize open-source technologies and local capacity building",
"Sustainability Plan": "Reference the government's Digital Transformation Strategy 2030"
}
}
💡 User Note:
Emphasize open-source technologies and local capacity building
| Feature | Template (This Endpoint) | AI Draft (/generate-ai-proposal-template) |
|---|---|---|
| Content | Empty sections with guidance | Pre-filled with AI-generated content |
| Generation Time | Instant (under 1 second) | 2-5 minutes (async) |
| User Control | User writes all content | AI generates, user edits |
| Best For | Experienced writers | Quick first drafts |
| File Format | Word (.docx) | Markdown (convertible to .docx) |
selected_sections to create a focused template instead of a 20-page document.