11-21-2025 05:05 PM
Subject: Assistance Needed: Unable to Submit Attachment Action – “inputs must be a simple key value object”
I am encountering an issue when attempting to programmatically trigger an Attachment Action (simulating a user click on an Adaptive Card button).
Problem Description
When calling the Webex REST API endpoint:
```bash
POST /v1/attachment/actions
```
request body:
```json
{
"type": "submit",
"messageId": "*****",
"inputs": {
"txt_search_keyword": "****",
"cardType": "input",
"template_id": "40",
"id": "Summary",
"personEmail": "*****.com",
"oauth_token": "*****",
"header_text": "TnQ Genie - Search",
"option_list": [
{
"operation": "read",
"options": "get_search_summary",
"input": {
"sernum": "$txt_search_keyword"
}
}
]
}
}
```
Using the messageId of a message that contains an Adaptive Card with Action.Submit, the API consistently returns the following error:
```json
{
"message": "inputs must a simple key value object",
"errors": [
{
"description": "inputs must a simple key value object"
}
],
"trackingId": "XXXX"
}
```
However, when I used the CardSampler bot to test the card button clicks mentioned above, the attachmentAction content could be nested.The content is as follows.
```json
{
"id": "****",
"type": "submit",
"messageId": "****",
"inputs": {
"cardType": "input",
"header_text": "TnQ Genie - Search",
"id": "sn_Summary",
"oauth_token": "*****",
"option_list": [
{
"input": {
"sernum": "$txt_search_keyword"
},
"operation": "read",
"options": "get_snsearch_summary"
}
],
"personEmail": "****.com",
"template_id": "40",
"txt_search_keyword": "****"
},
"personId": "****",
"roomId": "****",
"created": "****"
}
```
When trying to simulate a button click, I tried various possible structures for the input object, but all failed, and the card could not be interacted with correctly.
If the card buttons contain "option_list" content, how should I set the "inputs" parameter in the request?
Any guidance or a troubleshooting session would be greatly appreciated.
11-27-2025 05:09 PM
Below is detailed information about the case.
Assistance Needed: Unable to Submit Attachment Action – “inputs must be a simple key value object”
I am encountering an issue when attempting to programmatically trigger an Attachment Action (simulating a user click on an Adaptive Card button).
Problem Description
Card JSON:
```json
{
"type": "AdaptiveCard",
"version": "1.1",
"body": [
{
"type": "ColumnSet",
"width": "stretch",
"columns": [
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"text": "TnQ Genie - Search",
"color": "Accent",
"weight": "Bolder",
"horizontalAlignment": "Left"
}
],
"width": "stretch"
},
{
"type": "Column",
"items": [
{
"horizontalAlignment": "Right",
"type": "ActionSet",
"actions": [
{
"type": "Action.Submit",
"title": "My Cards",
"data": {
"id": "mycards",
"personEmail": "****.com",
"oauth_token": "****",
"header_text": "TnQ Genie - My Cards (User Defined/Assigned Cards)"
}
}
]
}
],
"width": "stretch"
}
]
},
{
"type": "Input.Text",
"placeholder": "",
"maxLength": 0,
"id": "txt_search_keyword"
},
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"width": "stretch",
"items": [
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Submit",
"title": "Summary",
"data": {
"cardType": "input",
"template_id": "40",
"id": "sn_Summary",
"personEmail": "****.com",
"oauth_token": "****",
"header_text": "TnQ Genie - Search",
"option_list": [
{
"operation": "read",
"options": "get_snsearch_summary",
"input": {
"sernum": "$txt_search_keyword"
}
}
]
}
},
{
"type": "Action.Submit",
"title": "ECO/D",
"data": {
"cardType": "input",
"id": "sn_Eco_Deviation",
"personEmail": "****.com",
"header_text": "TnQ Genie - Search",
"oauth_token": "****",
"option_list": [
{
"operation": "read",
"options": "get_sndeviations",
"input": {
"sernum": "$txt_search_keyword"
}
},
{
"operation": "read",
"options": "get_dr2refnum",
"input": {
"sernum": "$txt_search_keyword"
}
}
]
}
},
{
"type": "Action.Submit",
"title": "Field Notice",
"data": {
"cardType": "input",
"id": "sn_Field_Notice",
"personEmail": "****.com",
"header_text": "TnQ Genie - Search",
"oauth_token": "****",
"table_view_fields": {
"field_notice": [
"Field Notice",
{
"action": {
"operation": "read",
"options": "general_table_read_service",
"input": {
"table_name": "sn_validation.snv_master",
"viewfields": "Sn_pruning_type,pid_list,eco_list,fieldnotice_type,sncount,snprunedcount",
"filters": {
"field_notice": {
"matchMode": "equals",
"value": "$table_card_field_value"
}
}
}
}
}
],
"sncount": [
"Total SN"
],
"snprunedcount": [
"Total SN PRUNED"
]
},
"sub_header_text": "Total $count Field Notices Found ",
"option_list": [
{
"operation": "read",
"options": "general_table_read_service",
"input": {
"table_name": "sn_validation.snv_master",
"viewfields": "Sn_pruning_type,pid_list,eco_list,fieldnotice_type,sncount,snprunedcount",
"filters": {
"field_notice": {
"matchMode": "equals",
"value": "$txt_search_keyword"
}
}
}
},
{
"operation": "read",
"options": "general_table_read_service",
"input": {
"table_name": "sn_validation.uv_snv_serialnumbers",
"viewfields": "field_notice,sncount,snprunedcount",
"sorting": "updatedate desc",
"filters": {
"sernum": {
"matchMode": "equals",
"value": "$txt_search_keyword"
}
}
}
}
]
}
},
{
"type": "Action.Submit",
"title": "Service Guide",
"data": {
"cardType": "input",
"id": "download_generic_report",
"personEmail": "****.com",
"oauth_token": "****",
"header_text": "TnQ Genie - Report Lookup",
"template_id": "15",
"report_info": {
"sernum": "Service_Guide_SN",
"pid": "Service_Guide_Product"
},
"template_path": "/tmp/Service_Guide.xlsx",
"input_fields": [
"sernum",
"pid"
],
"export_config": {
"sernum": {
"SN History Service": {
"refresh_required": "false",
"data_row_start": 8,
"data_column_start": 0,
"date_time_flag": "true",
"top_fields": [
{
"SERNUM": 2,
"CURRENT_STATUS": 4,
"MFG_DATE": 7
},
{
"PID": 2,
"BUSINESS_UNIT": 4,
"DF_SITE": 7
},
{
"TAN": 2,
"PRODUCT_FAMILY": 4
},
{
"PARTNUMBER": 2
}
],
"header_fields": [
"SOURCE",
"REC_TIME",
"SERNUM",
"UUTTYPE",
"AREA",
"STATUS",
"FAILURE",
"DEFECTCLASS",
"COMPONENTNUMBER",
"DEFECTLOCATION",
"REFERENCENUM"
],
"option_list": [
{
"operation": "read",
"options": "get_degug_bot_sn_history",
"input": {
"sernum": "$sernum"
}
},
{
"operation": "read",
"options": "get_sn_summary_info",
"input": {
"sernum": "$sernum",
"input_type": "SN"
}
}
]
}
},
"pid": {
"Test Yield": {
"refresh_required": "false",
"data_row_start": 6,
"data_column_start": 3,
"date_time_flag": "false",
"header_fields": [
"PID",
"AREA",
"SERNUM_COUNT",
"TEST_COUNT",
"TEST_PASS_COUNT",
"TEST_FAIL_COUNT",
"YIELD",
"MIN_RECTIME",
"MAX_RECTIME",
"Min VID",
"Max VID"
],
"option_list": [
{
"operation": "read",
"options": "get_test_yield",
"input": {
"pid": "$pid",
"input_type": "$input_type"
}
}
]
},
"Symptom | Hardware Pareto": {
"refresh_required": "false",
"data_row_start": 6,
"data_column_start": 3,
"date_time_flag": "false",
"header_fields": [
"PID",
"AREA",
"FAILURE",
"SERNUM_COUNT",
"TEST_FAIL_COUNT",
"FAILURE PARETO",
"HW PASS CHANGE",
"HARDWARE PARETO",
"MIN_RECTIME",
"MAX_RECTIME",
"Min VID",
"Max VID"
],
"option_list": [
{
"operation": "read",
"options": "get_symptom_repair_till_pass",
"input": {
"pid": "$pid",
"input_type": "$input_type"
}
}
]
},
"Test Repair Location": {
"refresh_required": "false",
"data_row_start": 6,
"data_column_start": 3,
"date_time_flag": "false",
"header_fields": [
"PID",
"AREA",
"FAILURE",
"STATUS",
"DEF_CLASS",
"COUNT",
"CPN",
"CPN_LOC",
"REF_NUM",
"Sample Sernum",
"MPN",
"MIN_RECTIME",
"MAX_RECTIME",
"Min VID",
"Max VID"
],
"option_list": [
{
"operation": "read",
"options": "get_symptom_repair_till_pass_level2",
"input": {
"pid": "$pid",
"input_type": "$input_type"
}
}
],
"chart_config": {
"data_row_start": 6,
"data_column_start": 19,
"chart_header_fields": [
"AREA",
"FAILURE",
"CPN_LOC",
"COUNT"
],
"option_list": [
{
"operation": "read",
"options": "get_test_repair_location_chart_data",
"input": {
"pid": "$pid",
"input_type": "$input_type"
}
}
]
}
},
"Test Component Success %": {
"refresh_required": "false",
"data_row_start": 6,
"data_column_start": 4,
"date_time_flag": "false",
"header_fields": [
"PID",
"AREA",
"FAILURE",
"STATUS",
"DEF CLASS",
"ref_num",
"COMPONENTS",
"COMPONENT LOCATION",
"COUNT PASS",
"COUNT TOTAL",
"SUCCESS %",
"Min DATE",
"Max DATE",
"Min VID",
"Max VID",
"Sample Sernum",
"MPN"
],
"option_list": [
{
"operation": "read",
"options": "get_component_replaced_success_rate",
"input": {
"pid": "$pid",
"input_type": "$input_type"
}
}
]
},
"Product ECO": {
"refresh_required": "false",
"data_row_start": 6,
"data_column_start": 0,
"date_time_flag": "false",
"header_fields": [
"Ref Num",
"ECO Count",
"Min Date",
"Max Date",
"Min VID",
"Max VID"
],
"option_list": [
{
"operation": "read",
"options": "get_debug_product_eco_applied",
"input": {
"pid": "$pid",
"input_type": "$input_type"
}
}
]
}
}
}
}
}
]
}
]
}
]
}
]
}
```
When calling the Webex REST API endpoint:
```bash
POST /v1/attachment/actions
```
request body:
```json
{
"type": "submit",
"messageId": "*****",
"inputs": {
"txt_search_keyword": "FVH29430ZC1",
"cardType": "input",
"template_id": "40",
"id": "sn_Summary",
"personEmail": "*****.com",
"oauth_token": "*****",
"header_text": "TnQ Genie - Search",
"option_list": [
{
"operation": "read",
"options": "get_snsearch_summary",
"input": {
"sernum": "$txt_search_keyword"
}
}
]
}
}
```
Using the messageId of a message that contains an Adaptive Card with Action.Submit, the API consistently returns the following error:
```json
{
"message": "inputs must a simple key value object",
"errors": [
{
"description": "inputs must a simple key value object"
}
],
"trackingId": "XXXX"
}
```
However, when I used the CardSampler bot to test the card button clicks mentioned above, the attachmentAction content could be nested.The content is as follows.
```json
{
"id": "****",
"type": "submit",
"messageId": "****",
"inputs": {
"cardType": "input",
"header_text": "TnQ Genie - Search",
"id": "sn_Summary",
"oauth_token": "*****",
"option_list": [
{
"input": {
"sernum": "$txt_search_keyword"
},
"operation": "read",
"options": "get_snsearch_summary"
}
],
"personEmail": "****.com",
"template_id": "40",
"txt_search_keyword": "****"
},
"personId": "****",
"roomId": "****",
"created": "****"
}
```
When trying to simulate a button click, I tried various possible structures for the input object, but all failed, and the card could not be interacted with correctly.
How should I set the `inputs` parameter in the request if the card contains "option_list" content?
Any guidance or a troubleshooting session would be greatly appreciated, as this issue blocks our automation workflow.
Thank you for your assistance.
11-24-2025 07:28 AM
@3636 can you open a support case for this - https://developer.webex.com/explore/support ? Please share the details and the team will help you troubleshoot this. Thanks
11-24-2025 05:27 PM - edited 11-24-2025 05:31 PM
Thank you.
I’ve submitted a case request, but “My Requests” is empty.
11-28-2025 01:17 AM
@3636 did you get a reply from us when you opened the ticket and a ticket number? If you can share the number here I can look it up and see if it was created properly.
11-28-2025 01:29 AM
I haven’t received a support ticket yet—the “My Requests” page at https://devsupport.webex.com/hc/en-us/requests remains empty.
I’ve tried submitting the request multiple times, but it still doesn’t appear to go through.
11-28-2025 03:47 AM
@3636 might be something with the payload that you might be copying there, not sure. Try sending an email directly to [email protected] , that should work. It's also probably easier if you sent the message payload in a txt file as attachment. Thanks
11-30-2025 05:45 PM
Thank you. I have sent the email, and the sender is tb704902636.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide