app.ramp.com
Sign-in page for Ramp's finance platform, used to manage corporate cards, expenses and accounts payable.
First seen 2026-10-12 · Last seen 2026-10-12 · Source: webmcp.com
Answer 11 · Act 16 · Transact 1 · Score: Not yet scored
Tool inspector
set_spend_program_intake_questions
Create, name, rename, or remove request form sections and add, update, or remove custom questions in the spend program editor open on the user's screen WITHOUT saving. Requesting programs only. form selects the target: request (default) edits the request form and takes ids from intake.sections; change_request edits the change order form requesters fill in when changing an approved request and takes ids from change_request_intake.sections, which only purchase order programs have. Read the target form from get_spend_program_editor_state first: it lists every question with its id, and built-in fields you must not duplicate. Section operations are only supported for form=request. add_section names the sole untitled section if present, preserving its questions, or appends a new section. update_section names or renames an existing section by section_id while preserving its id, questions, and conditions. remove_section deletes the section and all its questions and clears dependent visibility or required-when rules, including change order rules. A section containing a protected question cannot be removed. Removing the last section leaves a fresh empty untitled section. Create sections first, then use created_section_ids from the result as section_id when adding questions. If the request form uses sections, every section must have a meaningful, nonblank title and at least one question before saving or publishing. When organizing a form into sections, use update_section to name any existing unnamed sections. A sole section with title=null is the default unsectioned form and may remain unnamed and empty, including after removing the last section. Leave new question descriptions blank unless the user explicitly requests them; do not repeat the question title. Only add question types listed in that form's available_question_types; other types are rejected for this program. Select choices carry ids: when replacing a question's choices, pass { id, label } for every choice you kee…
Page: /sign-in
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
form |
string | no | Which form to edit. request: the request form (ids from intake.sections). change_request: the change order form requesters fill in when changing an approved request (ids from change_request_intake.sections); only purchase order programs have one. |
operations |
array | yes | Applied in order. Create sections first, then use their returned ids to add questions. Add a controlling question in one call and reference its returned id before adding dependent questions. |
expected_editor_revision |
string | yes | The editor_revision returned by get_spend_program_editor_state that this update was computed from. The update is rejected if the editor changed since that read. |
Raw JSON schema
{
"type": "object",
"properties": {
"form": {
"description": "Which form to edit. request: the request form (ids from intake.sections). change_request: the change order form requesters fill in when changing an approved request (ids from change_request_intake.sections); only purchase order programs have one.",
"default": "request",
"type": "string",
"enum": [
"request",
"change_request"
]
},
"operations": {
"description": "Applied in order. Create sections first, then use their returned ids to add questions. Add a controlling question in one call and reference its returned id before adding dependent questions.",
"minItems": 1,
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "add_section"
},
"title": {
"description": "Section heading for the request form only. Names the sole untitled section if one exists, preserving its questions; otherwise appends a new section. Use the returned created_section_ids to add questions in a subsequent call. Every section needs at least one question before saving or publishing.",
"type": "string",
"minLength": 1
}
},
"required": [
"operation",
"title"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "update_section"
},
"section_id": {
"description": "Section id from intake.sections in get_spend_program_editor_state.",
"type": "string"
},
"title": {
"description": "Name or rename a request form section, preserving its id, questions, and conditions.",
"type": "string",
"minLength": 1
}
},
"required": [
"operation",
"section_id",
"title"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "remove_section"
},
"section_id": {
"description": "Section id from intake.sections. Removes the request form section and all its questions. Rejected if any contained question cannot be deleted. Rules depending on deleted questions are cleared, including change order rules. Removing the last section leaves a fresh empty untitled section.",
"type": "string"
}
},
"required": [
"operation",
"section_id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "add_question"
},
"title": {
"description": "Question shown to requesters. Unique per type within a section.",
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"enum": [
"ADDRESS",
"BOOLEAN",
"CONTACT",
"DATE",
"DEPARTMENT",
"EMAIL",
"FILE_UPLOAD",
"LINK",
"MERCHANT",
"MERCHANT_CATEGORY",
"NUMBER",
"PARAGRAPH",
"TEXT",
"TEXT_MULTI_SELECT",
"TEXT_SINGLE_SELECT",
"USER",
"VENDOR"
]
},
"description": {
"description": "Helper text under the question. Leave blank unless the user explicitly requests it; do not repeat the title.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"required": {
"description": "Defaults to false.",
"type": "boolean"
},
"choices": {
"description": "Choice labels, in order. Only for TEXT_SINGLE_SELECT and TEXT_MULTI_SELECT.",
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"visible_when": {
"description": "Show this question only when an earlier answer matches.",
"type": "object",
"properties": {
"question_id": {
"description": "id of an EARLIER question of type BOOLEAN, TEXT_SINGLE_SELECT, or TEXT_MULTI_SELECT that controls whether this question is shown.",
"type": "string"
},
"equals": {
"description": "For a BOOLEAN controlling question: show when the answer equals this value.",
"type": "boolean"
},
"is_one_of": {
"description": "For a select controlling question: show when the answer is one of these choice labels.",
"minItems": 1,
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"question_id"
],
"additionalProperties": false
},
"section_id": {
"description": "Section to add to, from the target form (intake.sections or change_request_intake.sections) in get_spend_program_editor_state. Defaults to the first section.",
"type": "string"
},
"position": {
"description": "Zero-based index within the section. Defaults to the end.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"operation",
"title",
"type"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "update_question"
},
"question_id": {
"description": "id from the target form (intake.sections or change_request_intake.sections) in get_spend_program_editor_state.",
"type": "string"
},
"title": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
},
"required": {
"type": "boolean"
},
"choices": {
"description": "Replacement choices, in order. Pass { id, label } with an id from the target form's sections to keep or rename an existing choice so visibility and required-when rules that depend on it keep working; pass a bare string to add a new choice. Existing choices left out are removed; removal is rejected when another question's or section's rule depends on the choice. The type cannot change.",
"minItems": 1,
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "object",
"properties": {
"id": {
"description": "Choice id from the target form (intake.sections or change_request_intake.sections) in get_spend_program_editor_state. Ids change when the user saves, so read them from the same editor_revision you write against.",
"type": "string"
},
"label": {
"type": "string",
"minLength": 1
}
},
"required": [
"id",
"label"
],
"additionalProperties": false
}
]
}
},
"visible_when": {
"description": "Replace the visibility rule; null always shows the question.",
"anyOf": [
{
"description": "Show this question only when an earlier answer matches.",
"type": "object",
"properties": {
"question_id": {
"description": "id of an EARLIER question of type BOOLEAN, TEXT_SINGLE_SELECT, or TEXT_MULTI_SELECT that controls whether this question is shown.",
"type": "string"
},
"equals": {
"description": "For a BOOLEAN controlling question: show when the answer equals this value.",
"type": "boolean"
},
"is_one_of": {
"description": "For a select controlling question: show when the answer is one of these choice labels.",
"minItems": 1,
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"question_id"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"operation",
"question_id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "remove_question"
},
"question_id": {
"description": "id from the target form (intake.sections or change_request_intake.sections) in get_spend_program_editor_state.",
"type": "string"
}
},
"required": [
"operation",
"question_id"
],
"additionalProperties": false
}
]
}
},
"expected_editor_revision": {
"description": "The editor_revision returned by get_spend_program_editor_state that this update was computed from. The update is rejected if the editor changed since that read.",
"type": "string"
}
},
"required": [
"operations",
"expected_editor_revision"
],
"additionalProperties": false
}
Similar websites
dashboard.orderly.network
Orderly dashboard
stockpilot-indol-chi.vercel.app
A WebMCP-powered trading terminal where humans and AI agents research markets, analyze SEC filings, and trade together — on real data.
famabook.com
famabook
ultravioletadao.xyz
Join UltraVioleta DAO - Latin America at the cutting edge of web4. Building the agentic economy through x402, ERC-8004, decentralized governance, and collaborat…