Skip to content

HTTP

messaging-http is an answer-owned messaging provider generated from build-answer.json. It is useful when a system talks to a digital worker through plain HTTP rather than a named chat platform.

It currently supports:

  • Mapping inbound HTTP POST JSON requests into normalized provider events
  • Optional inbound bearer-token or API-key-header checks
  • Capturing selected request headers and query parameters
  • Building outbound GET or POST HTTP request descriptions from message payloads
  • URL templating with payload values such as {payload.case_id}
  1. Add the provider pack

    Select messaging-http with gtc wizard or add the pack to the bundle from the messaging provider catalog.

  2. Configure routing and auth

    Use the setup answers generated for your installed pack. Typical config includes route/public URL information, optional auth, captured headers, and outbound request settings.

  3. Run setup

    Terminal window
    gtc setup ./my-bundle
  4. Start the runtime

    Terminal window
    gtc start ./my-bundle

Inbound HTTP expects a POST request with a JSON object body. The provider maps it to an event shaped like:

{
"provider": "messaging-http",
"direction": "inbound",
"kind": "http.webhook",
"idempotency_key": "req-1",
"source": {
"method": "POST",
"path": "/webhooks/acme",
"headers": {
"x-request-id": "req-1"
},
"query": {
"source": "test"
}
},
"payload": {
"case_id": "C123",
"event": "case.created"
}
}

The idempotency key is taken from Idempotency-Key, X-Request-Id, payload.idempotency_key, or payload.id when present.

Outbound messages are converted into HTTP request descriptions. For example, with config:

{
"method": "POST",
"url": "https://example.test/cases/{payload.case_id}",
"headers": {
"content-type": "application/json"
},
"timeout_ms": 5000
}

A message payload of { "case_id": "C123", "status": "open" } produces:

{
"method": "POST",
"url": "https://example.test/cases/C123",
"headers": {
"content-type": "application/json"
},
"body": "{\"case_id\":\"C123\",\"status\":\"open\"}",
"timeout_ms": 5000
}
DirectionProtocol and portPurpose
IncomingHTTPS 443 to GreenticExternal systems posting webhook-style JSON requests
Incoming, local developmentHTTP on the local runtime/tester portLocal testing before TLS/tunnel termination
OutgoingHTTP or HTTPS to configured endpointsProvider-built outbound requests

Use the local tester:

Terminal window
./scripts/test_http.sh

The tester page has separate buttons for inbound mapping and outbound request generation, and shows a clear pass/fail status.