Help & Support

Getting started, every integration surface, and answers to common questions.

For the interactive version with in-app deep links, open the Mo app and go to Help → Help Center after you sign in. Open Mo

Getting started

Mo connects agreements from your tools to your code review process, then checks the diff on every pull or merge request.

What is Mo?

Mo (short for Motionode) is an AI-powered decision enforcement platform. When your team agrees on a product rule, a technical constraint, a business requirement, or a UX detail, Mo captures it as a decision and checks that it is reflected in code before a pull or merge request is merged.

Mo bridges chat and work tools to your repository: agreements from Slack, Microsoft Teams, Jira, Azure DevOps, Linear, Basecamp, Asana, monday.com, uploaded documents, or manual entry in the portal are enforced when code ships.

Tip: Mo is language-agnostic. It works on any codebase, regardless of stack.

How Mo works

Three steps from agreement to enforcement:

1

Capture decisions

Record from Slack, Teams, issue trackers, documents, or the Decisions page in the Mo portal (Integrations and Decisions in the app).

2

Open a pull request or merge request

When a developer opens a PR on GitHub, an MR on GitLab, or a PR on Bitbucket, Mo is triggered, reads the diff, and loads approved decisions for the project.

3

Get results before merging

Mo posts a status check and a comment before merge. Verdicts include Pass, Conflict (code contradicts a decision), and Review (worth a human look). When Jira, Azure DevOps, Linear, or other trackers are connected, Mo also uses linked work-item context for richer results.

Quick setup guide

A practical order to get your first check:

1

Connect a code host

In the portal: Integrations → Code Hosts and connect GitHub, GitLab, or Bitbucket, then select repositories to monitor.

2

Connect a decision source

Choose at least one: Slack, Microsoft Teams, Jira, Azure DevOps, Linear, Basecamp, Asana, or monday.com, each under Integrations.

3

Create a decision

Use Decisions → + Add Decision or capture from a connected source. A clear line like “The trial period must be 14 days” is easier to enforce than vague text.

4

Open a PR or MR

Push a branch and open a PR/MR. Mo runs on open, reopen, and new commits.

5

Review results

See runs on the Checks page in the portal and on the PR/MR as a status and comment.

Tip: You do not need every integration. GitHub (or GitLab/Bitbucket) plus manual decisions is enough to start.

Key concepts

Vocabulary you will see in the product:

Decision — An agreement about how the product or system should behave. These are the rules Mo enforces.

Decision source — Where a decision was captured: Slack, Teams, trackers, a document, or manual entry.

Verdict — Pass, Conflict, or Review from a Mo check.

Check — One run of analysis on a PR or MR. New commits on an open PR get a fresh check.

Override — A logged approval in the portal to allow merge despite a conflict, with a required reason.

Collaborator — A teammate with access to your Mo project; billing counts seats for collaborators other than the owner.

What Mo checks in a PR or MR

Mo compares the diff to approved decisions and, when issues are linked, to tracker context. It looks for:

Code that contradicts an approved decision (for example, a different trial length than agreed).

Missing implementations a decision requires.

Config or values that do not match what the team decided.

Product or business rules expressed as decisions.

With Jira, Azure DevOps, Linear, Basecamp, Asana, or monday.com connected, Mo can use issue summaries, acceptance criteria, parent/epic context, labels, and more for more accurate verdicts.

Supported integrations

GitHub Code host — pull request checks; optional required status check in branch protection.
GitLab Code host — merge request checks (GitLab.com cloud).
Bitbucket Code host — pull request checks (Atlassian OAuth).
Slack Decision source and rich command surface.
Microsoft Teams Decision source (capture phrases; decision text travels with the @mention).
Jira Cloud Issue context and decision capture from new issue comments.
Azure DevOps Work item context and capture from discussion comments.
Linear Issue context; capture from new issue comments (create events).
Asana Task context; capture from task comments (reconnect for comment scopes if no reply is posted).
monday.com Item context; capture from item updates.
Basecamp Project context; capture from messages and comments.

Decisions in the Mo portal

The Decisions page is the record of what your team agreed to. Two views matter day to day:

Current decisions — Active items grouped by area, with source badges (Slack, Teams, trackers, document, or manual).

History — Chronological timeline: who changed what, when, and from which source.

Filter by source and status, and search by keyword. Only approved decisions affect PR/MR checks.

Adding decisions manually

Open Decisions → + Add Decision. Use a specific title, add a clear description, and link an issue key (Jira, ADO, Linear) when the decision is tied to tracked work. Manual decisions are enforced the same as captures from any integration.

Decision statuses

Approved Active rules Mo enforces in every check.

Pending Captured but not confirmed; not enforced until approved.

Rejected Dismissed; not enforced; still visible in History if needed.

Superseded Replaced by a newer conflicting decision; both remain in History for audit.

Superseding and linking

When a new decision contradicts an old one, Mo supersedes the old entry automatically, keeping History intact. You can link work by including issue keys in titles, branch names, or PR titles—Mo picks them up for context when your Git and tracker integrations are connected.

Slack

Connect under Integrations → Team Chats → Slack → Connect, then use /invite @Mo in every channel where decisions are made. Prefer a thread so context stays together.

Slack command reference (mention @Mo)

Capture a decision

@mo approve this

Reads the thread and captures one or more decisions from it.

@mo approve

Same as above; both forms work.

@mo update this / @mo update

Same capture intent as approve—records from the thread context.

@mo store this / @mo store

Same capture intent—alias for approve.

@mo save, record, capture, log, remember…

Verbs in this family work with or without “this”.

@mo lock, commit, freeze, pin, snapshot…

Treat the thread as the source of truth; same capture pipeline as approve.

@mo book, register, solidify, enshrine…

Additional synonyms—still the same capture pipeline as approve.

Undo or reject

@mo undo that

Rejects the most recent decision for this project.

@mo disregard that

Same as undo that.

@mo undo "Trial must be 14 days"

Rejects a specific decision by quoting its title. Gray example text is illustrative only; use the real title.

@mo get rid of that last decision

Natural language—same as undoing the most recent.

@mo changed my mind / nevermind / never mind

Rejects the most recent decision for the project.

Query decisions

@mo what was our last decision?

Shows the most recent decision with details.

@mo list decisions / show me our decisions

Lists the five most recent approved decisions for the project.

@mo how many decisions do we have?

Count breakdown: approved, rejected, pending.

@mo when did we say "14-day trial"?

When a specific decision was made, and by whom, when the quoted text matches a title.

@mo who said… / @mo who rejected…

With quoted text, who captured or who undid a match.

Upload documents and rules

@mo give me a link to upload documents

Posts a unique upload link in the channel. Shorthand: @mo upload link.

@mo approve all rules / @mo reject all rules

Approve or reject all pending rules from the most recent document.

@mo approve rules 1, 3, 5 / reject rules 2, 4

Numbered rules as Mo posted to Slack from extraction.

Help in Slack

@mo help · what can i ask you? · how to

All list the same command reference inside Slack.

Multi-decision threads: Mo can create one or several decisions from a single thread and will supersede older conflicting decisions. Put questions about specific titles in quotes so search commands know what to match.
If Mo is silent in Slack: Check that Integrations → Slack is connected, the bot is a member of the channel (/invite @Mo), and the capture phrase is in a thread with enough context—and that you are using a capture command Mo should recognize, not a bare “approve” in isolation without thread context.

Microsoft Teams

Mo is a Teams bot app distributed as a zip for admin upload—no end-user Microsoft OAuth. Mo only ever sees activity that @mentions the bot; it does not read all channel history.

Connect

In the portal, open Integrations → Team Chats → Microsoft Teams, download Mo for Teams (.zip) (do not unzip for upload). Your Teams or tenant admin can upload the package to the Teams admin center, or in personal testing: Teams → Apps → Upload a custom app when your tenant allows sideloading. Add the Mo app to the channel (or 1:1) where you capture decisions. The integration shows Connected after the bot sees its first activity—send a test @mention if needed.

Capture a decision in Teams (text must be in the same message as the @mention)

@Mo approve this: API errors must return JSON with an error.code field.
@Mo update this: Same behavior as approve for recording a decision.
@Mo store this: or @Mo lock this: — same capture pipeline, different wording.

If your workspace has several Mo projects, a Mo admin can set channel→project mappings, or include the project name in the @mention—otherwise Mo may need help choosing a project and posts a link to the portal to fix mapping.

Slack vs Teams today: In Slack, @mo approve this can work without extra text because Mo can read thread context. In Teams, channel history is not available to the bot the same way, so you must include the decision in the @mention until you use Slack, the Decisions page, or document tools for the rest of the feature set. Undo, full lists, upload links, and rule-by-number approval are Slack or portal for now; Teams coverage is growing.

Git hosts: GitHub, GitLab, Bitbucket

Under Integrations → Code Hosts, connect each provider with OAuth, then select repositories. Mo only reads PR/MR diffs, not full repository clones—see the FAQ for how metadata is stored.

GitHub: pull requests

When your repos are selected, every new and updated pull request is checked. Repository admins can add Mo as a required status check under branch protection. Conflicts and reviews appear in comments and the Checks list.

# Example workflow
git checkout -b feature/my-change
git add . && git commit -m "Implement 14-day trial"
git push -u origin feature/my-change
# then open a PR in the GitHub UI (Compare & pull request), or from the link Git prints.

GitLab: merge requests (GitLab.com cloud)

Mo uses external status API on your selected projects. Self-managed Git is not in product yet; that is a roadmap item.

Bitbucket: pull requests

Same overall flow—OAuth through Atlassian, then choose repos for Bitbucket cloud PRs.

Check flow (all code hosts)

Mo loads the diff and approved decisions, plus linked issue or work-item context if configured.

It produces a verdict—Pass, Conflict, or Review—and posts a status and comment. Each new commit on the PR/MR triggers a fresh run.

Branch and title linking

feature/PROJ-123-add-auth        → Jira PROJ-123
feature/ADO-1204-retry            → Azure DevOps
bugfix/ENG-42-ui                  → Linear

PR/MR titles and commit messages that contain work-item keys are used as a fallback. Linking by branch and title is how decision context and tracker context reach the check together.

Overrides in the Mo portal

On the Checks page, a project member with permission can Override a failing result with a required business reason—logged for compliance. The repository may still be mergeable in Git when policy allows, depending on how your team uses branch protection and overrides together.

Issue trackers and work management

Jira, Azure DevOps, Linear, Asana, Basecamp, and monday.com act as decision sources and context sources. Mo can capture from comments or updates, and in every case it stores the decision in the Decisions page—tracker replies (where permissions allow) are a bonus acknowledgment, not the system of record.

In almost every product, the same capture words you use in Slack—for example @mo approve this, @mo store this, and the mo <verb> … family—match on new comments, discussion posts, or updates. Very short approve this or update this lines (about 120 characters or less) can resolve from issue or task text alone, while longer narrative captures may need an admin to turn on AI extraction in Mo project settings.

Jira Cloud

Connect in Integrations → Issue Trackers → Jira. Cloud only—Data Center/Server is not supported. Add capture phrases in new issue comments (not only the description). Mo reads summary, description, acceptance criteria, parent/epic, labels, and status. Disconnect/reconnect in the portal if consent tokens went stale. Slack-only command shortcuts are not in Jira; use Slack or the portal for those.

Azure DevOps

Connect, pick a Mo project, and sign in with Microsoft. Add phrases in the work item Discussion tab. If the UI says no projects discovered after sign-in, you may be on a personal (MSA) org, a cross-tenant org, or blocked directory reads—enter the organization slug from dev.azure.com/<org> when Mo offers manual entry, then re-list projects via the Azure DevOps REST API with the token you already granted.

Linear, Asana, monday.com, Basecamp

Linear: new issue comment with capture phrases—edits do not reprocess. Asana: task comment; if you do not get a short reply, reconnect to grant comment scopes. monday.com: item update text—edits can re-run. Basecamp: messages and comments. Each surface uses the same phrase patterns; confirm captures on the Decisions page in all cases.

Tip: multiple tools

You can use several trackers at once. The usual flow is connect each under the right Mo project, then reference work-item keys in branch names, manual decisions, or auto-linking. PR checks combine decision text with the freshest work-item context the integrations can fetch.

Documents and uploads

Formats and limits (matches the app Help Center)

PDF — best with selectable (not only scanned) text where possible.

.txt, .md, .csv — meeting notes, specs, tabular requirements.

Maximum 25 MB per file.

From Slack

Type @mo give me a link to upload documents, open the link, upload, and review the numbered list Mo posts—then @mo approve all rules or @mo approve rules 1,3,5.

From the portal

Decisions → + Add → Upload Document lets you process and approve rules in the browser without going through chat.

Shareable links

Generate a link in Decisions → + Add → Upload Document → generate shareable link (or the Slack request above) so people without a Mo account can send files—shareable links expire in seven days in the app flow; make a new link if one expired.

Extraction quality

Prefer short, declarative sentences—“The system must…”, not vague bullets. Split huge PDFs. Always review the extracted list before you approve—Mo can merge, split, or mispick edge cases; edit wording in the portal to sharpen enforcement.

Frequently asked questions

Same categories and answers that appear in the in-app FAQ tab. Expand a question to read the answer.

General

What is Mo?

Mo (short for Motionode) is an AI-powered decision enforcement platform. When your team agrees on something — a product rule, a technical constraint, a business requirement — Mo captures it as a “decision” and automatically checks that it’s reflected in your code before any pull request or merge request is merged.

How is Mo different from code linters or CI checks?

Code linters enforce syntax rules and style conventions. Mo enforces your team’s actual agreements. A linter can’t tell you whether the trial period was implemented as 14 days like your team decided — Mo can. Mo reads your decisions and compares them against the actual code diff, catching semantic violations that static analysis tools miss.

Does Mo store my source code?

Mo reads PR/MR diffs to evaluate decisions and does not clone full repositories. The system stores check metadata and findings (for example file paths, line ranges, and short diff excerpts used in the result view). It does not persist a full copy of your codebase.

What programming languages does Mo support?

Mo is fully language-agnostic. It works on any codebase — JavaScript, TypeScript, Python, Go, Rust, Java, C#, Ruby, PHP, and more. Because Mo reasons about what your decisions mean in context of the diff, it doesn’t need language-specific parsers.

Do I need to connect all integrations?

No. You need at least one code host (GitHub, GitLab, or Bitbucket) and at least one decision source (Slack, Teams, Jira, Azure DevOps, Linear, Basecamp, Asana, monday.com, or manual entry). All other integrations are optional and add richer context to your verdicts.

Can Mo be used without Slack?

Yes. Slack is one of several ways to feed decisions into Mo. You can use Microsoft Teams, add decisions manually from the Decisions page, capture them from Jira, Azure DevOps, Linear, Basecamp, Asana, or monday.com, or extract them from uploaded documents — all without Slack.

Decisions

What counts as a decision?

A decision is any agreement your team reaches about how the product or system should behave. Examples: “The trial period must be 14 days,” “User passwords must be hashed with bcrypt,” “The API response time must be under 200 ms,” “The checkout button must be green.” Decisions can be product rules, technical constraints, UX requirements, or business policies.

Can I edit a decision after it has been approved?

Yes. Go to the Decisions page, find the decision, and open it. You can edit the title, description, and linked issues. Changes are reflected in future PR checks immediately. Editing a decision does not affect already-completed check results.

What does “superseded” mean?

When a new decision contradicts or replaces an existing one (e.g., changing the trial from 30 days to 14 days), Mo marks the old decision as “superseded” and the new one becomes the active rule. Both remain visible in the History view so you have a full audit trail.

What’s the difference between approved, pending, and rejected decisions?

Approved decisions are active rules — Mo enforces them in every PR check. Pending decisions have been captured but not yet reviewed or confirmed. Rejected decisions have been explicitly dismissed. Only approved decisions affect PR verdicts.

How many decisions can a project have?

There is no hard limit on the number of decisions per project. Mo handles large decision sets efficiently. That said, keeping decisions focused and well-described produces more accurate verdicts than having many vague or overlapping rules.

Can I add a decision without using Slack or Jira?

Yes. From the Decisions page, click + Add Decision. Write the title and description directly. You can optionally link it to an issue key from any connected integration. Manual decisions are fully supported and enforced exactly like decisions created from Slack, Microsoft Teams, issue trackers, Linear, Basecamp, Asana, or monday.com.

PR and MR checks

Why is my PR check failing?

The most common causes: (1) The code in the PR contradicts an approved decision — for example, a constant is set to a different value than what was agreed. (2) A required implementation is missing from the diff. (3) A configuration value doesn’t match what was decided. Read the Mo comment on the PR for a specific explanation of each conflict.

How long does a Mo check take?

Usually under 30 seconds for most PRs. Larger diffs or projects with many decisions may take up to 60 seconds. Mo posts its result to the PR as soon as the check is complete.

Does Mo check every push or only when the PR is opened?

Mo triggers a new check whenever a PR or MR is opened, reopened, or updated with new commits. Each push to an open PR triggers a fresh check so you always see the latest verdict.

Can I skip or override a Mo check?

Yes. From the Checks page in this portal, you can mark a specific check as overridden. This lets the PR be merged even if Mo flagged a conflict, and logs who approved the override and why. Overrides are tracked for accountability.

What is the difference between a “conflict” and a “review” result?

“Conflict” means Mo found code that directly contradicts an approved decision. “Review” means Mo found something worth a human look but isn’t certain it’s a violation — often because the decision is high-level or the diff is ambiguous. “Pass” means the diff aligns with all decisions.

Can I configure which repositories Mo monitors?

Yes. From Integrations → GitHub, GitLab, or Bitbucket, you can select exactly which repositories Mo should monitor. You can add or remove repositories at any time without re-connecting the integration.

Slack

Mo is not responding in my Slack channel. What should I check?

First, verify that your Slack integration is connected: go to Integrations → Slack and check the status. Second, make sure you’ve invited Mo to the channel by typing /invite @Mo in that channel. Mo must be a member of the channel to read messages and respond. Third, check that you’re mentioning @Mo (not @mo lowercase — both should work, but try the exact username you see after installation).

Mo is in the channel but not creating decisions. Why?

Mo can capture from either a thread or regular channel flow, but it needs enough context to infer a decision. Include an explicit capture phrase (for example @mo approve this, @mo update this, @mo store this, @mo lock this — many verbs work the same way), ensure the bot is in the channel, and add a little surrounding discussion or context when possible. Threads are recommended because they usually give cleaner context.

Can multiple people create decisions in the same channel?

Yes. Any team member with access to the channel and the Mo project can use a capture phrase (@mo approve this, @mo update this, @mo store this, and the other verbs in Help). Mo tracks who captured each decision (the person who typed the command) and links back to the thread.

What happens if I approve the same decision twice?

Mo deduplicates repeated captures. If the new approval resolves to the same decision title as an existing approved decision, Mo skips creating a duplicate. If the new approval represents a changed rule or value, Mo can create a new decision and supersede the older one.

Microsoft Teams

Mo does not respond in my Teams channel. What should I check?

Confirm Integrations → Teams shows as connected (the Mo portal flips to Connected automatically once the bot receives its first activity from your tenant). Make sure the Mo app is installed in the team and added to the specific channel. Finally, your @mention must include the decision text — e.g. “@Mo approve this: API errors must return JSON”. Unlike Slack, Mo does not read Teams channel history, so a bare “@mo approve this” will not capture anything.

Why does Mo say it could not load channel messages?

The Mo Teams integration is a bot app; it does not require Microsoft 365 user consent or broad Graph permissions. Installation is done by your Teams admin uploading the Mo app package (.zip) from this portal to the Teams admin center. If your tenant disables custom app sideloading, ask your Teams admin to enable it for the Mo app or wait until Mo is listed in the Microsoft Teams Store (coming soon).

Which Mo features work in Teams today versus Slack?

In Teams, Mo focuses on capturing decisions from channel conversation: use the same capture phrases as elsewhere (@mo approve this, @mo update this, @mo store this, @motionode, mo update, etc.). Commands such as undo, listing decisions, upload document links, and document rule approval are available in Slack or from this portal; use those surfaces until Teams parity expands.

Integrations

Which Jira plans does Mo support?

Mo supports Jira Cloud only. On-premise (Jira Server or Jira Data Center) is not currently supported. Connecting Jira usually requires someone with admin access on your Atlassian site to approve Mo.

Does Mo support self-hosted (on-premise) GitLab?

Not currently. Mo supports GitLab.com (cloud). Self-hosted GitLab Enterprise Edition integration is on the roadmap. Contact support if this is a blocker for your team.

Can I connect multiple GitHub organizations?

Yes, as long as the connected GitHub identity or app installation can access those repositories. In Integrations, select the repos you want Mo to monitor. If your company keeps work split by separate permissions or teams, using separate Mo projects can still be the cleanest setup.

I disconnected an integration. What happens to my decisions?

Your existing decisions are preserved. Disconnecting a source (e.g. Jira) means Mo will no longer fetch new issue context from that source, but all previously captured decisions remain active and are still enforced in PR checks. You can reconnect the integration at any time.

Does Mo work if I use both GitHub and Jira together?

Yes — this is actually the recommended setup for maximum verdict accuracy. When a PR is opened on GitHub, Mo checks the diff against your decisions and pulls fresh context from the linked Jira issue (via the issue key in the branch name or PR title). The combined context produces richer, more accurate verdicts.

Asana, monday.com, Linear, or Basecamp do not pick up my approvals. What should I try?

In Mo, open Integrations, choose the tool, disconnect, then connect again and accept the permissions—this fixes most issues after consent or passwords change. Make sure you are commenting or updating where Mo listens (for example an Asana task comment or a monday item update). If it still does not work, contact Motionode support with the tool name and roughly when you tried.

Why doesn’t Mo post a reply under my comment in Asana, Linear, monday.com, or similar?

Mo records every capture in this portal. For Asana, Linear, monday.com, Basecamp, Jira, and Azure DevOps, Mo also tries to post a short acknowledgment on the same task or thread when your integration token has the right scopes (for Asana, comment and write access is requested on connect). If you connected before that was added, disconnect and connect again so Asana can grant comment permission. The reply quotes the captured decision title (the same title Mo saves). Slack and Microsoft Teams use their own reply channels. Always confirm captures on the Decisions page.

Billing and account

What is included in the free plan?

The free tier includes the core Mo workflow with usage limits that are enforced at the account level (shown on the Billing page). Current limits and trial state (for example decisions and checks available and days left, if trial started) are shown live in Billing, and Pro unlocks higher limits plus blocking enforcement.

How are collaborators counted?

A collaborator is any person (other than you) who can access a Mo project. Each collaborator requires a paid seat. You can manage collaborators from the Collaborators page in this portal. Removing a collaborator frees up their seat on your next billing cycle.

Can I try Mo before subscribing?

Yes. You can use Mo on the free tier before subscribing. In the Check portal billing flow, a free-trial window starts automatically after your first approved decision; Billing shows remaining days and limits in real time. Upgrading to Pro requires adding a payment method.

Contact us

Open the Contact form on the public Mo app URL—no sign-in required. If you are already signed in to Mo, the in-app Help Center form can include your workspace context; we aim to reply within 24 hours either way.

In the app, pick a subject such as:
  • General question · Setup help
  • Slack integration · Microsoft Teams
  • GitHub, GitLab, or Bitbucket
  • Jira, Azure DevOps, Linear, Basecamp, Asana, or monday.com
  • PR/MR check not working · Documents
  • Billing · Bug or feature

Open contact form in the app