{"id":"5b785dd3-74f6-4b82-94cf-c002e499af37","shortId":"nMa6Cb","kind":"skill","title":"notion-automation","tagline":"Automate Notion tasks via Rube MCP (Composio): pages, databases, blocks, comments, users. Always search tools first for current schemas.","description":"# Notion Automation via Rube MCP\n\nAutomate Notion operations through Composio's Notion toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Notion connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `notion`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `notion`\n3. If connection is not ACTIVE, follow the returned auth link to complete Notion OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Create and Manage Pages\n\n**When to use**: User wants to create, update, or archive Notion pages\n\n**Tool sequence**:\n1. `NOTION_SEARCH_NOTION_PAGE` - Find parent page or existing page [Prerequisite]\n2. `NOTION_CREATE_NOTION_PAGE` - Create a new page under a parent [Optional]\n3. `NOTION_RETRIEVE_PAGE` - Get page metadata/properties [Optional]\n4. `NOTION_UPDATE_PAGE` - Update page properties, title, icon, cover [Optional]\n5. `NOTION_ARCHIVE_NOTION_PAGE` - Soft-delete (archive) a page [Optional]\n\n**Key parameters**:\n- `query`: Search text for SEARCH_NOTION_PAGE\n- `parent_id`: Parent page or database ID\n- `page_id`: Page ID for retrieval/update/archive\n- `properties`: Page property values matching parent schema\n\n**Pitfalls**:\n- RETRIEVE_PAGE returns only metadata/properties, NOT body content; use FETCH_BLOCK_CONTENTS for page body\n- ARCHIVE_NOTION_PAGE is a soft-delete (sets archived=true), not permanent deletion\n- Broad searches can look incomplete unless has_more/next_cursor is fully paginated\n\n### 2. Query and Manage Databases\n\n**When to use**: User wants to query database rows, insert entries, or update records\n\n**Tool sequence**:\n1. `NOTION_SEARCH_NOTION_PAGE` - Find the database by name [Prerequisite]\n2. `NOTION_FETCH_DATABASE` - Inspect schema and properties [Prerequisite]\n3. `NOTION_QUERY_DATABASE` / `NOTION_QUERY_DATABASE_WITH_FILTER` - Query rows [Required]\n4. `NOTION_INSERT_ROW_DATABASE` - Add new entries [Optional]\n5. `NOTION_UPDATE_ROW_DATABASE` - Update existing entries [Optional]\n\n**Key parameters**:\n- `database_id`: Database ID (from search or URL)\n- `filter`: Filter object matching Notion filter syntax\n- `sorts`: Array of sort objects\n- `start_cursor`: Pagination cursor from previous response\n- `properties`: Property values matching database schema for inserts/updates\n\n**Pitfalls**:\n- 404 object_not_found usually means wrong database_id or the database is not shared with the integration\n- Results are paginated; ignoring has_more/next_cursor silently truncates reads\n- Schema mismatches or missing required properties cause 400 validation_error\n- Formula and read-only fields cannot be set via INSERT_ROW_DATABASE\n- Property names in filters must match schema exactly (case-sensitive)\n\n### 3. Manage Blocks and Page Content\n\n**When to use**: User wants to read, append, or modify content blocks in a page\n\n**Tool sequence**:\n1. `NOTION_FETCH_BLOCK_CONTENTS` - Read child blocks of a page [Required]\n2. `NOTION_ADD_MULTIPLE_PAGE_CONTENT` - Append blocks to a page [Optional]\n3. `NOTION_APPEND_TEXT_BLOCKS` - Append text-only blocks [Optional]\n4. `NOTION_REPLACE_PAGE_CONTENT` - Replace all page content [Optional]\n5. `NOTION_DELETE_BLOCK` - Remove a specific block [Optional]\n\n**Key parameters**:\n- `block_id` / `page_id`: Target page or block ID\n- `content_blocks`: Array of block objects (NOT child_blocks)\n- `text`: Plain text content for APPEND_TEXT_BLOCKS\n\n**Pitfalls**:\n- Use `content_blocks` parameter, NOT `child_blocks` -- the latter fails validation\n- ADD_MULTIPLE_PAGE_CONTENT fails on archived pages; unarchive via UPDATE_PAGE first\n- Created blocks are in response.data.results; persist block IDs for later edits\n- DELETE_BLOCK is archival (archived=true), not permanent deletion\n\n### 4. Manage Database Schema\n\n**When to use**: User wants to create databases or modify their structure\n\n**Tool sequence**:\n1. `NOTION_FETCH_DATABASE` - Inspect current schema [Prerequisite]\n2. `NOTION_CREATE_DATABASE` - Create a new database [Optional]\n3. `NOTION_UPDATE_SCHEMA_DATABASE` - Modify database properties [Optional]\n\n**Key parameters**:\n- `parent_id`: Parent page ID for new databases\n- `title`: Database title\n- `properties`: Property definitions with types and options\n- `database_id`: Database ID for schema updates\n\n**Pitfalls**:\n- Cannot change property types via UPDATE_SCHEMA; must create new property and migrate data\n- Formula, rollup, and relation properties have complex configuration requirements\n\n### 5. Manage Users and Comments\n\n**When to use**: User wants to list workspace users or manage comments on pages\n\n**Tool sequence**:\n1. `NOTION_LIST_USERS` - List all workspace users [Optional]\n2. `NOTION_GET_ABOUT_ME` - Get current authenticated user [Optional]\n3. `NOTION_CREATE_COMMENT` - Add a comment to a page [Optional]\n4. `NOTION_FETCH_COMMENTS` - List comments on a page [Optional]\n\n**Key parameters**:\n- `page_id`: Page ID for comments (also called `discussion_id`)\n- `rich_text`: Comment content as rich text array\n\n**Pitfalls**:\n- Comments are linked to pages, not individual blocks\n- User IDs from LIST_USERS are needed for people-type property filters\n\n## Common Patterns\n\n### ID Resolution\n\n**Page/Database name -> ID**:\n```\n1. Call NOTION_SEARCH_NOTION_PAGE with query=name\n2. Paginate with has_more/next_cursor until found\n3. Extract id from matching result\n```\n\n**Database schema inspection**:\n```\n1. Call NOTION_FETCH_DATABASE with database_id\n2. Extract properties object for field names and types\n3. Use exact property names in queries and inserts\n```\n\n### Pagination\n\n- Set `page_size` for results per page (max 100)\n- Check response for `has_more` boolean\n- Pass `start_cursor` or `next_cursor` in next request\n- Continue until `has_more` is false\n\n### Notion Filter Syntax\n\n**Single filter**:\n```json\n{\"property\": \"Status\", \"select\": {\"equals\": \"Done\"}}\n```\n\n**Compound filter**:\n```json\n{\"and\": [\n  {\"property\": \"Status\", \"select\": {\"equals\": \"In Progress\"}},\n  {\"property\": \"Assignee\", \"people\": {\"contains\": \"user-id\"}}\n]}\n```\n\n## Known Pitfalls\n\n**Integration Sharing**:\n- Pages and databases must be shared with the Notion integration to be accessible\n- Title queries can return 0 when the item is not shared with the integration\n\n**Property Types**:\n- Property names are case-sensitive and must match schema exactly\n- Formula, rollup, and created_time fields are read-only\n- Select/multi-select values must match existing options unless creating new ones\n\n**Response Parsing**:\n- Response data may be nested under `data_preview` or `data.results`\n- Parse defensively with fallbacks for different nesting levels\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Search pages/databases | NOTION_SEARCH_NOTION_PAGE | query |\n| Create page | NOTION_CREATE_NOTION_PAGE | parent_id, properties |\n| Get page metadata | NOTION_RETRIEVE_PAGE | page_id |\n| Update page | NOTION_UPDATE_PAGE | page_id, properties |\n| Archive page | NOTION_ARCHIVE_NOTION_PAGE | page_id |\n| Duplicate page | NOTION_DUPLICATE_PAGE | page_id |\n| Get page blocks | NOTION_FETCH_BLOCK_CONTENTS | block_id |\n| Append blocks | NOTION_ADD_MULTIPLE_PAGE_CONTENT | page_id, content_blocks |\n| Append text | NOTION_APPEND_TEXT_BLOCKS | page_id, text |\n| Replace content | NOTION_REPLACE_PAGE_CONTENT | page_id, content_blocks |\n| Delete block | NOTION_DELETE_BLOCK | block_id |\n| Query database | NOTION_QUERY_DATABASE | database_id, filter, sorts |\n| Query with filter | NOTION_QUERY_DATABASE_WITH_FILTER | database_id, filter |\n| Insert row | NOTION_INSERT_ROW_DATABASE | database_id, properties |\n| Update row | NOTION_UPDATE_ROW_DATABASE | page_id, properties |\n| Get database schema | NOTION_FETCH_DATABASE | database_id |\n| Create database | NOTION_CREATE_DATABASE | parent_id, title, properties |\n| Update schema | NOTION_UPDATE_SCHEMA_DATABASE | database_id, properties |\n| List users | NOTION_LIST_USERS | (none) |\n| Create comment | NOTION_CREATE_COMMENT | page_id, rich_text |\n| List comments | NOTION_FETCH_COMMENTS | page_id |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["notion","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-notion-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/notion-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34666 github stars · SKILL.md body (8,768 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T06:51:38.856Z","embedding":null,"createdAt":"2026-04-18T21:41:30.001Z","updatedAt":"2026-04-23T06:51:38.856Z","lastSeenAt":"2026-04-23T06:51:38.856Z","tsv":"'/mcp':77 '0':945 '1':97,144,163,310,482,627,725,814,839 '100':874 '2':109,175,289,321,494,635,734,823,847 '3':117,188,330,459,506,644,744,830,856 '4':132,196,342,517,609,755 '400':432 '404':398 '5':207,351,527,704 'access':940 'action':1206 'activ':49,122,137 'add':74,91,347,496,576,748,1074 'also':773 'alway':16,59 'api':87 'append':472,500,508,511,561,1071,1082,1085 'applic':1200 'archiv':158,209,215,264,273,582,603,604,1047,1050 'array':378,549,784 'ask':1244 'assigne':918 'auth':126 'authent':741 'autom':3,4,24,28 'avail':48,102 'block':13,259,461,476,485,489,501,510,515,530,534,538,545,548,551,555,563,567,571,590,595,601,793,1064,1067,1069,1072,1081,1087,1100,1102,1105,1106 'bodi':255,263 'boolean':880 'boundari':1252 'broad':278 'call':60,110,774,815,840 'cannot':441,681 'case':457,961 'case-sensit':456,960 'caus':431 'chang':682 'check':875 'child':488,554,570 'clarif':1246 'clear':1219 'client':84 'comment':14,708,720,747,750,758,760,772,779,786,1179,1182,1188,1191 'common':807 'complet':129 'complex':701 'composio':10,32 'compound':907 'configur':85,702 'confirm':104,133 'connect':44,51,55,113,119,134 'contain':920 'content':256,260,464,475,486,499,521,525,547,559,566,579,780,1068,1077,1080,1092,1096,1099 'continu':890 'core':142 'cover':205 'creat':145,155,177,180,589,619,637,639,689,746,971,985,1022,1025,1154,1157,1178,1181 'criteria':1255 'current':21,67,632,740 'cursor':383,385,883,886 'data':694,991,996 'data.results':999 'databas':12,233,293,301,317,324,333,336,346,355,362,364,393,405,409,447,611,620,630,638,642,648,650,662,664,673,675,836,843,845,930,1109,1112,1113,1122,1125,1133,1134,1142,1147,1151,1152,1155,1158,1168,1169 'defens':1001 'definit':668 'delet':214,271,277,529,600,608,1101,1104 'describ':1207,1223 'differ':1005 'discuss':775 'done':906 'duplic':1055,1058 'edit':599 'endpoint':93 'entri':304,349,358 'environ':1235 'environment-specif':1234 'equal':905,914 'error':434 'exact':455,858,967 'execut':1202 'exist':172,357,982 'expert':1240 'extract':831,848 'fail':574,580 'fallback':1003 'fals':895 'fetch':258,323,484,629,757,842,1066,1150,1190 'field':440,852,973 'filter':338,370,371,375,451,806,897,900,908,1115,1119,1124,1127 'find':168,315 'first':19,64,588 'follow':123 'formula':435,695,968 'found':401,829 'fulli':287 'get':66,71,192,736,739,1031,1062,1146 'icon':204 'id':229,234,236,238,363,365,406,539,541,546,596,656,659,674,676,768,770,776,795,809,813,832,846,923,1029,1038,1045,1054,1061,1070,1079,1089,1098,1107,1114,1126,1135,1144,1153,1160,1170,1184,1193 'ignor':419 'incomplet':282 'individu':792 'input':1249 'insert':303,344,445,864,1128,1131 'inserts/updates':396 'inspect':325,631,838 'integr':415,926,937,954 'item':948 'json':901,909 'key':88,219,360,536,653,765,1013 'known':924 'later':598 'latter':573 'level':1007 'limit':1211 'link':127,788 'list':715,727,729,759,797,1172,1175,1187 'look':281 'manag':54,112,147,292,460,610,705,719 'match':245,373,392,453,834,965,981,1220 'max':873 'may':992 'mcp':9,27,38,41,73,80,100 'mean':403 'metadata':1033 'metadata/properties':194,253 'migrat':693 'mismatch':426 'miss':428,1257 'modifi':474,622,649 'more/next_cursor':285,421,827 'multipl':497,577,1075 'must':42,452,688,931,964,980 'name':319,449,812,822,853,860,958 'need':89,800 'nest':994,1006 'new':182,348,641,661,690,986 'next':885,888 'none':1177 'notion':2,5,23,29,34,50,58,116,130,159,164,166,176,178,189,197,208,210,226,265,311,313,322,331,334,343,352,374,483,495,507,518,528,628,636,645,726,735,745,756,816,818,841,896,936,1017,1019,1024,1026,1034,1041,1049,1051,1057,1065,1073,1084,1093,1103,1110,1120,1130,1139,1149,1156,1165,1174,1180,1189 'notion-autom':1 'oauth':131 'object':372,381,399,552,850 'one':987 'oper':30 'option':187,195,206,218,350,359,505,516,526,535,643,652,672,733,743,754,764,983 'output':1229 'overview':1210 'page':11,148,160,167,170,173,179,183,191,193,199,201,211,217,227,231,235,237,242,250,262,266,314,463,479,492,498,504,520,524,540,543,578,583,587,658,722,753,763,767,769,790,819,867,872,928,1020,1023,1027,1032,1036,1037,1040,1043,1044,1048,1052,1053,1056,1059,1060,1063,1076,1078,1088,1095,1097,1143,1183,1192 'page/database':811 'pages/databases':1016 'pagin':288,384,418,824,865 'param':1014 'paramet':220,361,537,568,654,766 'parent':169,186,228,230,246,655,657,1028,1159 'pars':989,1000 'pass':881 'pattern':808 'peopl':803,919 'people-typ':802 'per':871 'perman':276,607 'permiss':1250 'persist':594 'pitfal':248,397,564,680,785,925 'plain':557 'prerequisit':39,174,320,329,634 'preview':997 'previous':387 'progress':916 'properti':202,241,243,328,389,390,430,448,651,666,667,683,691,699,805,849,859,902,911,917,955,957,1030,1046,1136,1145,1162,1171 'queri':221,290,300,332,335,339,821,862,942,1021,1108,1111,1117,1121 'quick':1008 'read':424,438,471,487,976 'read-on':437,975 'record':307 'refer':1009 'relat':698 'remov':531 'replac':519,522,1091,1094 'request':889 'requir':341,429,493,703,1248 'resolut':810 'respond':108 'respons':388,876,988,990 'response.data.results':593 'result':416,835,870 'retriev':190,249,1035 'retrieval/update/archive':240 'return':125,251,944 'review':1241 'rich':777,782,1185 'rollup':696,969 'row':302,340,345,354,446,1129,1132,1138,1141 'rube':8,26,37,40,45,53,61,72,99,105,111 'rube.app':76 'rube.app/mcp':75 'run':139 'safeti':1251 'schema':22,69,247,326,394,425,454,612,633,647,678,687,837,966,1148,1164,1167 'scope':1222 'search':17,46,62,106,165,222,225,279,312,367,817,1015,1018 'select':904,913 'select/multi-select':978 'sensit':458,962 'sequenc':162,309,481,626,724 'server':81 'set':272,443,866 'setup':70 'share':412,927,933,951 'show':136 'silent':422 'singl':899 'size':868 'skill':1198,1214 'skill-notion-automation' 'slug':1012 'soft':213,270 'soft-delet':212,269 'sort':377,380,1116 'source-sickn33' 'specif':533,1236 'start':382,882 'status':135,903,912 'stop':1242 'structur':624 'substitut':1232 'success':1254 'syntax':376,898 'target':542 'task':6,1010,1218 'test':1238 'text':223,509,513,556,558,562,778,783,1083,1086,1090,1186 'text-on':512 'time':972 'titl':203,663,665,941,1161 'tool':18,47,63,68,107,161,308,480,625,723,1011 'toolkit':35,57,115 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':1227 'true':274,605 'truncat':423 'type':670,684,804,855,956 'unarch':584 'unless':283,984 'updat':156,198,200,306,353,356,586,646,679,686,1039,1042,1137,1140,1163,1166 'url':369 'use':151,257,296,467,565,615,711,857,1196,1212 'user':15,152,297,468,616,706,712,717,728,732,742,794,798,922,1173,1176 'user-id':921 'usual':402 'valid':433,575,1237 'valu':244,391,979 'verifi':98 'via':7,25,36,52,444,585,685 'want':153,298,469,617,713 'work':96 'workflow':141,143,1204 'workspac':716,731 'wrong':404","prices":[{"id":"a8e289bc-a0fa-4917-8f90-870d21024179","listingId":"5b785dd3-74f6-4b82-94cf-c002e499af37","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:41:30.001Z"}],"sources":[{"listingId":"5b785dd3-74f6-4b82-94cf-c002e499af37","source":"github","sourceId":"sickn33/antigravity-awesome-skills/notion-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/notion-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:41:30.001Z","lastSeenAt":"2026-04-23T06:51:38.856Z"}],"details":{"listingId":"5b785dd3-74f6-4b82-94cf-c002e499af37","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"notion-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34666,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"2999d7e401e9947fb9018b30c17004b87f292b06","skill_md_path":"skills/notion-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/notion-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"notion-automation","description":"Automate Notion tasks via Rube MCP (Composio): pages, databases, blocks, comments, users. Always search tools first for current schemas."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/notion-automation"},"updatedAt":"2026-04-23T06:51:38.856Z"}}