Browse the docs

Integrations

Integrations in Allpage: its screens, what you can do there and its operations.

Availability. Every business has it.

What you can do

  • Connect Google: only you can do it, on its screen
  • Finish connecting a service: only you can do it, on its screen
  • Disconnect a service: the assistant asks you first
  • Add an event to your Google Calendar: the assistant can do it on its own
  • Invite people from your Google Calendar: the assistant can prepare it and you confirm it, twice
  • Connect another service’s tools: only you can do it, on its screen
  • Approve a service’s changed tools: only you can do it, on its screen
  • Use a tool from another service: the assistant asks you first
  • Add customers from Square: the assistant asks you first

For apps

Tools

  • integrations_connect (Connect Google): only the owner can do it: the tool answers with a single-use link for them to open, signed in, and does nothing else
  • integrations_disconnect (Disconnect a service): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • integration_google_addEvent (Add an event to your Google Calendar): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
  • integration_google_invite (Invite people from your Google Calendar): waits for the owner to confirm it in Allpage, whatever they chose for your app
  • integration_mcp_add (Connect another service’s tools): only the owner can do it: the tool answers with a single-use link for them to open, signed in, and does nothing else
  • integration_mcp_approve (Approve a service’s changed tools): only the owner can do it: the tool answers with a single-use link for them to open, signed in, and does nothing else
  • integration_mcp_call (Use a tool from another service): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • integration_square_addCustomers (Add customers from Square): customers see it: waits for the owner’s approval unless they chose Just do it for your app

Reads

  • integrations_list (Connected services)
  • integrations_health (What your connected services do)
  • integrations_glance (See which services are connected, at a glance)
  • integration_google_freeBusy (Busy times on your Google Calendar)
  • integration_mcp_tools (Tools from your other services)
  • integration_square_customers (Customers matched with Square)
  • integrations_summary (What’s going on)

Only the owner, in Allpage

  • Finish connecting a service

Operations

Each one's input and output, as JSON Schema. Ids are typed (typed ids).

integrations.connect

Connect Google

Kind
Owner only
Tool
integrations_connect
Scope
integrations:write
Reached by
MCP, ChatGPT

only the owner can do it: the tool answers with a single-use link for them to open, signed in, and does nothing else

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": {}
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {},
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

integrations.disconnect

Disconnect a service

Kind
Change
Tool
integrations_disconnect
Scope
integrations:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "integrationId": {
      "type": "string",
      "pattern": "^int_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A integration id: int_ and 26 letters and digits."
    }
  },
  "required": [
    "integrationId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

integrations.glance

See which services are connected, at a glance

Kind
Read
Tool
integrations_glance
Scope
integrations:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "connected": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "reconnect": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "connected",
            "reconnect"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

integrations.health

What your connected services do

Kind
Read
Tool
integrations_health
Scope
integrations:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "default": {},
  "type": "object",
  "properties": {
    "capability": {
      "type": "string",
      "enum": [
        "calendar.freebusy",
        "calendar.write",
        "listings.manage",
        "reviews.reply",
        "social.publish",
        "mail.read",
        "accounting.journals",
        "customers.sync",
        "loyalty.read",
        "messages.instagram",
        "messages.messenger",
        "shipping.labels"
      ]
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "capability": {
                "type": "string",
                "enum": [
                  "calendar.freebusy",
                  "calendar.write",
                  "listings.manage",
                  "reviews.reply",
                  "social.publish",
                  "mail.read",
                  "accounting.journals",
                  "customers.sync",
                  "loyalty.read",
                  "messages.instagram",
                  "messages.messenger",
                  "shipping.labels"
                ]
              },
              "title": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "connected",
                  "missing_scope",
                  "needs_reconnect",
                  "not_connected",
                  "unavailable"
                ]
              },
              "partner": {
                "type": "string"
              },
              "account": {
                "type": "string"
              },
              "reason": {
                "type": "string"
              }
            },
            "required": [
              "capability",
              "title",
              "status"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

integrations.list

Connected services

Kind
Read
Tool
integrations_list
Scope
integrations:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "about": {
                "type": "string"
              },
              "available": {
                "type": "boolean"
              },
              "capabilities": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "enum": [
                        "calendar.freebusy",
                        "calendar.write",
                        "listings.manage",
                        "reviews.reply",
                        "social.publish",
                        "mail.read",
                        "accounting.journals",
                        "customers.sync",
                        "loyalty.read",
                        "messages.instagram",
                        "messages.messenger",
                        "shipping.labels"
                      ]
                    },
                    "title": {
                      "type": "string"
                    },
                    "granted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "title",
                    "granted"
                  ],
                  "additionalProperties": false
                }
              },
              "connections": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "integrationId": {
                      "type": "string",
                      "pattern": "^int_[0-9a-hjkmnp-tv-z]{26}$",
                      "description": "A integration id: int_ and 26 letters and digits."
                    },
                    "account": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "connected",
                        "needs_reconnect",
                        "revoked"
                      ]
                    },
                    "reason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "connectedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "integrationId",
                    "account",
                    "status",
                    "reason",
                    "connectedAt"
                  ],
                  "additionalProperties": false
                }
              },
              "connect": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "partner": {
                    "type": "string"
                  },
                  "operation": {
                    "type": "string",
                    "const": "integrations.connect"
                  },
                  "start": {
                    "type": "string",
                    "description": "Owner route under /api/b/<business>."
                  }
                },
                "required": [
                  "title",
                  "partner",
                  "operation",
                  "start"
                ],
                "additionalProperties": false
              },
              "disconnectNote": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "title",
              "about",
              "available",
              "capabilities",
              "connections"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

integrations.summary

What’s going on

Kind
Read
Tool
integrations_summary
Scope
integrations:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "title": {
              "type": "string"
            },
            "facts": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "One-line facts, e.g. \"3 bookings today\"."
            },
            "attention": {
              "description": "Things that need the owner, each with a plain reason.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "text": {
                    "type": "string"
                  },
                  "href": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "text"
                ],
                "additionalProperties": false
              }
            },
            "happening": {
              "description": "What’s on today, each at its time.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "at": {
                    "type": "number",
                    "description": "Epoch milliseconds."
                  },
                  "text": {
                    "type": "string"
                  },
                  "href": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "at",
                  "text"
                ],
                "additionalProperties": false
              }
            },
            "metrics": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "value": {
                    "type": "number"
                  },
                  "prior": {
                    "type": "number"
                  },
                  "unit": {
                    "type": "string",
                    "enum": [
                      "count",
                      "money"
                    ]
                  },
                  "href": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "label",
                  "value"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "title",
            "facts"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}