Writes values into cells of a component screen for one user, in real time.
💡 All the cells in a single call must belong to the same menu. To touch two menus, send two calls.
Use it to pre-fill forms with known user data, load dropdown options on demand, or push values driven by your backend.
⚠️ Components are designed in the nandbox App Builder and cannot be created over the API. This method only writes into screens that already exist.
method is "updateMenuCell".
| Field | Type | Required | Description |
|---|---|---|---|
cells |
Array of Cell | Yes | The cells to write, with the properties to set on each. |
menu_id |
String | Yes | The component screen to update. Must be an existing Custom Component menu in your app. |
user_id |
String | Yes | The user whose screen you are updating. |
app_id |
String | Yes | The app the component belongs to. |
reference |
String | Yes | Your id for this request. Echoed back in the acknowledgement. |
disable_notification |
Boolean | Optional | Suppress the notification for this update. |
| Field | Type | Returned | Description |
|---|---|---|---|
method |
String | Yes | "messageAck" |
ack |
Object | Yes | Carries reference, message_id, date, and gmid. |
| SDK | Call | Callback |
|---|---|---|
| Java | api.updateMenuCell(userId, menuId, appId, cells, reference, disableNotification); |
onMessagAckCallback(MessageAck msgAck) |
| JavaScript | api.updateMenuCell(userId, menuId, appId, cells, reference, disableNotification); |
onMessagAckCallback(msgAck) |
| Python | napi.update_menu_cell(user_id, menu_id, app_id, cells, reference, disable_notification) |
on_message_ack_callback(self, msg_ack) |
cells is raw JSON in all three SDKs, so build it as a JSON array rather than with a DTO.
{
"method": "updateMenuCell",
"app_id": "90090684341943480",
"user_id": "90089584793718478",
"menu_id": "uV1kyCyvseaar5j",
"reference": "123452342",
"cells": [
{
"cell_id": "b_MwoZavDgnumnsYt",
"callback": "b_MwoZavDgnumnsYt",
"form": "output",
"style": "balanced",
"cell_order": 0,
"version": "RnB2nis36P1VTH9Z",
"headline": "Hello!",
"subhead": "World!",
"body": "Hi!",
"font_size": {
"headline": "md",
"subhead": "md",
"body": "md"
},
"text_align": {
"headline": "center",
"subhead": "center",
"body": "center"
}
}
]
}
String cellsJson = "[ ... the cells array shown above ... ]";
JSONArray cells = (JSONArray) new JSONParser(-1).parse(cellsJson);
api.updateMenuCell(
"90089584793718478",
"uV1kyCyvseaar5j",
"90090684341943480",
cells,
"123452342",
null);
const cells = JSON.parse("[ ... the cells array shown above ... ]");
api.updateMenuCell(
"90089584793718478",
"uV1kyCyvseaar5j",
"90090684341943480",
cells,
"123452342",
null
);
import json
cells = json.loads("[ ... the cells array shown above ... ]")
napi.update_menu_cell(
user_id="90089584793718478",
menu_id="uV1kyCyvseaar5j",
app_id="90090684341943480",
cells=cells,
reference="123452342",
disable_notification=None,
)