cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1741
Views
0
Helpful
7
Replies

Unable to Submit Attachment Action

3636
Frequent Visitor
Frequent Visitor

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.

 

7 Replies 7

3636
Frequent Visitor
Frequent Visitor

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"
}
}
]
}
}
```
3636_1-1764291942537.png


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"
}
```
3636_2-1764291974070.png

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": "****"
}
```

 

3636_3-1764291998301.png

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.

Janos Benyovszki
Cisco Employee
Cisco Employee

@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

Thank you.
I’ve submitted a case request, but “My Requests” is empty.

submit.png

my_requests.png

@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.

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.

@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

Thank you. I have sent the email, and the sender is tb704902636.