Momentum / No-code docs

    Momentum · Integration docs

    No-code agent

    Nothing to install. Two HTTP calls. A webhook so Momentum can wake your canvas after a person acts on Feed.

    Two HTTP calls. One webhook

    Your canvas keeps the logic. Momentum answers one question: may this step continue, must a person look, or must this case stop? Use this if the agent lives in n8n, Zapier, Make, Agentforce, Flowise, Dify, or any tool that can POST JSON. Code agents use the Python or Node.js SDK instead.

    1 · Report a fact

    POST /v1/emit-event

    Send what happened. Policy decides continue, pause, or block.

    2 · Ask a human

    POST /v1/request-approval

    Always pauses. The next node runs only after Approve on Feed.

    3 · Resume the run

    Webhook POST

    Momentum calls your URL when a reviewer acts. Route on decision_code.

    How it looks on the canvas

    A complete agent on a canvas — the same shape as n8n. Trigger, set IDs, POST emit-event, then honor continue / paused / blocked. If paused, request approval, wait for Feed, and route on the reviewer's decision. continue and APPROVE reuse one Disburse loan node.

    Loan Agent · your canvasActive
    continuepausedAPPROVEDENYREQUEST_CHANGESblocked
    TriggerStart loan request
    SetRun contextagent_id · case_id · execution_id
    HTTPPOST emit-eventloan.risk.calculated
    SwitchBranch on status
    Policy allowedNo human needed
    Your actionDisburse loancontinue or APPROVE
    HTTPPOST request-approvalAsk a human on Feed
    WaitFeed webhookMomentum POSTs after they act
    SwitchBranch on decision_code
    StopStop this case
    ResubmitSame case, new runnew execution_id · version + 1
    Policy said noStop this caseNo human wait
    n8n-style wires: every node connects port to port. continue and APPROVE share one Disburse loan node — do not duplicate that action. If your builder cannot receive a webhook, poll GET /v1/approvals/{id} instead of Wait — same as a GitHub PR agent, a loan agent, or any canvas.

    Before you start

    Three things from Momentum. Then you are ready to POST.

    1. On Feed click Add Agent. Choose No-code agent. In your builder, add a POST webhook, turn the workflow on, and paste the production URL. Click Test, then Connect & apply governance. Copy the agent_id.
    2. Create a live key on API Key (fe_live_…). It is shown once.
    3. Store the key as a header credential in your builder — never in a node that logs the full request.

    Headers

    Put these on every call to Momentum.

    HTTP headers

    Authorization: Bearer fe_live_paste_your_key_here
    Content-Type: application/json

    Base URL: https://forceequals-momentum-api.onrender.com

    Quick start

    Same agent_id, case_id, and execution_id on both calls. execution_id is unique per run (n8n: {{ $execution.id }}). case_id is the business item — one loan, one ticket.

    POST https://forceequals-momentum-api.onrender.com/v1/emit-event

    {
      "agent_id": "loan-agent",
      "execution_id": "exec_1001",
      "case_id": "loan_1001",
      "version": 1,
      "event_type": "loan.risk.calculated",
      "event_details": {
        "loan_amount": 1500000,
        "risk_score": 0.42
      }
    }

    POST https://forceequals-momentum-api.onrender.com/v1/request-approval

    {
      "agent_id": "loan-agent",
      "execution_id": "exec_1001",
      "case_id": "loan_1001",
      "version": 1,
      "title": "Approve disbursement",
      "context": { "amount": 1500000 }
    }

    What each call does

    CallWhen to use it
    POST /v1/emit-eventReport a fact. Policy decides continue, pause, or block.
    POST /v1/request-approvalAsk a human on Feed. Always pauses until they resolve it.
    Webhook POSTMomentum wakes your canvas after Approve, Reject, or Request change.

    Branch on the result

    Unlike the SDK, your canvas does not wait inside the HTTP node. Switch on status. Never put payout, send, or write on the default branch.

    statusWhat you do
    continueNext node. Skip irreversible actions if you still need request-approval.
    pausedPark this run. Wait on the webhook you registered.
    blockedStop this case. Do not wait for a human.

    Typical responses

    { "status": "continue", "case_id": "loan_1001" }
    
    { "status": "paused", "approval_id": "apr_ab12cd34", "case_id": "loan_1001" }
    
    { "status": "blocked", "reason": "Amount exceeds organization limit" }

    Review on Feed

    1. Open Momentum → Feed while the run is paused.
    2. Approve POSTs your webhook and you continue. Reject closes this case. Request change stops this run — resubmit with the same case_id, a new execution_id, and version + 1.

    Webhook body after Feed

    {
      "event": "approval.resolved",
      "approval_id": "apr_ab12cd34",
      "execution_id": "exec_1001",
      "case_id": "loan_1001",
      "version": 1,
      "status": "approved",
      "decision_code": "APPROVE",
      "reason": "",
      "can_resubmit": false
    }
    decision_codeWhat you do
    APPROVEResume. Wire this into the same Disburse / merge / send node as continue — one action block, two incoming wires.
    DENYStop. A later request is a new case.
    REQUEST_CHANGESStop this run. Resubmit the same case with updated values.

    Every decision is also stored on History. If your builder cannot receive webhooks, poll GET https://forceequals-momentum-api.onrender.com/v1/approvals/apr_… with the same Bearer header.

    n8n, Zapier, Make, Agentforce

    Same contract on every canvas. Only the node names change.

    BuilderWhat to add
    n8nWebhook (POST, Production URL, workflow Active) → HTTP Request (emit-event) → Switch on status → Wait on the webhook → Switch on decision_code. Header Auth: Authorization = Bearer fe_live_….
    ZapierCatch Hook as the resume URL. Webhooks POST with the Bearer header. Paths on status. Turn the Zap on before you Test in Momentum.
    MakeCustom webhook + HTTP module + Router. Enable the scenario before Test.
    Agentforce / othersNamed Credential or HTTP tool against https://forceequals-momentum-api.onrender.com. Park when paused; continue only after APPROVE.

    If something fails

    What you seeWhat to do
    Test button failsWorkflow must be Active. URL must be POST and reachable (not localhost). In n8n use the Production URL.
    401 from emit-eventHeader is Bearer fe_live_… with a space after Bearer. Generate a new key if the secret was lost.
    Nothing on Feedagent_id in the JSON must match Connect Agent. A silent continue will not create a card — pause or request-approval will.
    Approve does not resumeThe Wait URL is not the URL you Tested. Re-test, or poll GET /v1/approvals/{id}.

    Built the agent in code instead? Use the Python or Node.jsguide. To put this org's policies into Cursor, Claude, or Codex — without emitting events — connect on the MCP tab.