[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-11 UTC."],[[["\u003cp\u003eAction feeds are defined using protocol buffers but should be uploaded in JSON format for easier processing.\u003c/p\u003e\n"],["\u003cp\u003eAn Action feed consists of multiple \u003ccode\u003eActionDetail\u003c/code\u003e messages, each representing a specific action with an entity ID, link ID, URL, and a list of actions.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eDiningInfo\u003c/code\u003e is a message type used within actions to specify dining-related details such as table reservations.\u003c/p\u003e\n"],["\u003cp\u003eJSON sample feeds and a descriptor file are provided to illustrate the structure and content of action feeds for Reserve with Google.\u003c/p\u003e\n"]]],["The document defines the structure of an Action Feed, recommending JSON format despite a Protobuf definition. The `ActionFeed` contains `ActionDetail` data, which includes `entity_id`, `link_id`, a detail `url`, and a list of `actions`. Each action can contain `DiningInfo`, specifying a `DiningType` (e.g., `TABLE_RESERVATION`). A sample Action Feed JSON demonstrates data structure. A descriptor file includes file names, timestamps and names.\n"],null,["# Action feed\n\nDefinitions\n-----------\n\n| **Note:** The Action feed spec is defined in protobuffer format below, however we recommend uploading the feeds in JSON format. You can reference our [JSON sample feeds](#samples) for more information.\n\n### ActionFeed Definition\n\n```protobuf\nmessage ActionFeed {\n repeated ActionDetail data = 1;\n}\n```\n\n### ActionDetail Definition\n\n```protobuf\nmessage ActionDetail {\n string entity_id = 2;\n string link_id = 3;\n\n // Deep link for action detail\n string url = 4;\n repeated Action actions = 1;\n}\n```\n\n### DiningInfo Definition\n\n```protobuf\nmessage DiningInfo {\n enum DiningType {\n UNKNOWN = 0;\n TABLE_RESERVATION = 1;\n }\n\n DiningType dining_type = 1 [features.field_presence = IMPLICIT];\n}\n```\n\nAction Feed samples\n-------------------\n\n### Action Feed\n\n```json\n{\n \"data\": [\n {\n \"entity_id\": \"reservations-redirect-merchant-1\",\n \"link_id\": \"reservations-redirect-link-1\",\n \"url\": \"https://www.example.com/restaurant/reservation\",\n \"actions\":[\n {\n \"dining_info\": { \"dining_type\": \"TABLE_RESERVATION\" }\n }\n ]\n }\n ]\n}\n```\n\n### Descriptor File\n\n```json\n{\n \"generation_timestamp\": 1677540395,\n \"name\": \"reservewithgoogle.action.v2\",\n \"data_file\": [\n \"action_1677540395.json\"\n ]\n}\n```"]]