Caps and Limits

LeadConduit supports two controls that set constraints on lead submissions and pings.

Cap

A cap allows limiting the number of leads sent to a flow. If a lead is successful, it will be counted against the maximum configured leads. If configured, the rule set will be evaluated to determine whether a lead will be counted against the cap.

Cap

A cap allows limiting the number of leads sent into or out of a flow. If a lead is successful, it will be counted against the maximum configured leads. If configured, the rule set will be evaluated to determine whether a lead will be counted against the cap.

id
string (ID) ^[0-9a-fA-F]{24}$

ID of this cap

type
string

The type of this cap (LeadConduit may eventually support different types of caps)

Value: "volume"
name
string

The human-readable name of the cap

maximum
number

The number of successful leads that will be accepted

duration
number >= 1

The number duration_units for which the cap persists

duration_units
string

The unit of time for which the cap persists

Enum: "month" "week" "day" "hour" "minute"
object or null (rule-set)

This rule set must pass in order for the lead to count against the cap

caps
Array of objects (Cap)

Nested caps evaluated if rules for the parent cap pass

time_zone
string or null

The time zone in which cap resets

reason
string (Template)

When the cap is met this is the reason (default: 'Cap reached')

created_at
string <date-time>

Read-only time the cap was created

{
  • "id": "5fd4371e940df5a34a3888b2",
  • "type": "volume",
  • "name": "Monthly leads from TX",
  • "maximum": 1200,
  • "duration": 1,
  • "duration_units": "month",
  • "rule_set": {
    • "id": "1aacd0",
    • "op": "and",
    • "rules": [
      • {
        • "id": "1aacd0",
        • "lhv": "lead.state",
        • "op": "is equal to",
        • "rhv": "TX",
        • "rule_set": { }
        }
      ]
    },
  • "caps": [
    • { }
    ],
  • "time_zone": "America/New_York",
  • "reason": "string",
  • "created_at": "2020-11-23T11:41:52Z"
}

Cap Counter

A cap counter keeps track of the number of leads counted against the cap. The counter has the same ID as the cap configuration saved with the flow. Most of the properties of the cap configuration are available on the cap counter, as a convenience.

id
string (ID) ^[0-9a-fA-F]{24}$

ID of this cap

cap_ids
Array of strings (ID)
Array of objects (Cap)

Nested caps evaluated if rules for the parent cap pass

count
integer

The number of successful leads during the current interval

duration
required
number >= 1

The number duration_units for which the cap persists

duration_units
required
string

The unit of time for which the cap persists

Enum: "month" "week" "day" "hour" "minute"
expires_at
string <date-time>

Read-only time the cap interval ends

failed_count
integer

The number of leads that failed because the cap was reached during the current interval

flow_id
string (ID) ^[0-9a-fA-F]{24}$

ID of the flow this cap belongs to

maximum
required
number

The number of successful leads that will be accepted

name
string

The human-readable name of the cap

source_id
string (ID) ^[0-9a-fA-F]{24}$

ID of the source this cap belongs to

started_at
string <date-time>

Read-only time the cap interval started

step_id
string (ShortID) ^[0-9a-zA-Z]{6}$

ID of the step this cap belongs to

time_zone
string or null

The time zone in which cap resets

type
required
string

The type of this cap (LeadConduit may eventually support different types of caps)

Value: "volume"
updated_at
string <date-time>
{
  • "id": "5fd4371e940df5a34a3888b2",
  • "cap_ids": [
    • "5fd4371e940df5a34a3888b2"
    ],
  • "caps": [
    • {
      • "id": "5fd4371e940df5a34a3888b2",
      • "type": "volume",
      • "name": "Monthly leads from TX",
      • "maximum": 1200,
      • "duration": 1,
      • "duration_units": "month",
      • "rule_set": {
        • "id": "1aacd0",
        • "op": "and",
        • "rules": [
          • {
            • "id": "1aacd0",
            • "lhv": "lead.state",
            • "op": "is equal to",
            • "rhv": "TX",
            • "rule_set": { }
            }
          ]
        },
      • "caps": [
        • { }
        ],
      • "time_zone": "America/New_York",
      • "reason": "string",
      • "created_at": "2020-11-23T11:41:52Z"
      }
    ],
  • "count": 0,
  • "duration": 1,
  • "duration_units": "month",
  • "expires_at": "2020-11-23T11:41:52Z",
  • "failed_count": 0,
  • "flow_id": "5fd4371e940df5a34a3888b2",
  • "maximum": 1200,
  • "name": "Monthly leads from TX",
  • "source_id": "5fd4371e940df5a34a3888b2",
  • "started_at": "2020-11-23T11:41:52Z",
  • "step_id": "1aacd0",
  • "time_zone": "America/New_York",
  • "type": "volume",
  • "updated_at": "2020-11-23T11:41:52Z"
}

Ping Limit

The ping limit configuration is defined in a flow on a source, or directly on the flow itself. The configuration controls the behavior of the ping limit by setting the maximum and the duration. The counter for a ping limit is kept as a standalone record which shares ping limit's ID.

id
string (ID) ^[0-9a-fA-F]{24}$

24 character alpha-numeric BSON identifier

name
string

The human-readable name of the ping limit

maximum
integer

The number of pings that will be accepted

duration
integer

The number duration_units the ping limit persists for

duration_units
string

The unit of time the ping limit persists for: minute, hour, day, week, or month

time_zone
string

The time zone in which ping limit resets

created_at
string <date-time> (Timestamp)

Read-only time the ping limit was created

{
  • "id": "5fd4371e940df5a34a3888b2",
  • "name": "string",
  • "maximum": 0,
  • "duration": 0,
  • "duration_units": "string",
  • "time_zone": "America/New_York",
  • "created_at": "2019-08-24T14:15:22Z"
}

Ping Limit Counter

A ping limit counter keeps track of the number of pings counted against the ping limit. The counter has the same ID as the ping limit configuration saved with the flow. Most of the properties of the ping limit configuration are available on the ping limit counter, as a convenience.

id
string (ID) ^[0-9a-fA-F]{24}$

24 character alpha-numeric BSON identifier

name
string

The human-readable name of the ping limit

failed_count
integer

The number of leads that failed during the current interval

flow_id
string (ID) ^[0-9a-fA-F]{24}$

24 character alpha-numeric BSON identifier

source_id
string (ID) ^[0-9a-fA-F]{24}$

The entity of the flow source if the limit is set on a source

maximum
integer

The number of pings that will be accepted

duration
integer

The number duration_units the ping limit persists for

duration_units
string

The unit of time the ping limit persists for: minute, hour, day, week, or month

time_zone
string

The time zone in which ping limit resets

started_at
string <date-time> (Timestamp)

Read-only time the ping limit interval started

expires_at
string <date-time> (Timestamp)

Read-only time the ping limit interval ends

{
  • "id": "5fd4371e940df5a34a3888b2",
  • "name": "string",
  • "failed_count": 0,
  • "flow_id": "5fd4371e940df5a34a3888b2",
  • "source_id": "5fd4371e940df5a34a3888b2",
  • "maximum": 0,
  • "duration": 0,
  • "duration_units": "string",
  • "time_zone": "America/New_York",
  • "started_at": "2019-08-24T14:15:22Z",
  • "expires_at": "2019-08-24T14:15:22Z"
}

List all cap counters

Get the counters for all active caps. Caps that haven't received lead traffic during the current interval will not be included.

SecurityAPIKey
Request
query Parameters
flow_id
string (ID) ^[0-9a-fA-F]{24}$

24 character alpha-numeric BSON identifier

Example: flow_id=5fd4371e940df5a34a3888b2
Responses
200

OK

get/caps
Request samples
Response samples
application/json
[
  • {
    • "id": "5fd4371e940df5a34a3888b2",
    • "cap_ids": [
      • "5fd4371e940df5a34a3888b2"
      ],
    • "caps": [
      • {
        • "id": "5fd4371e940df5a34a3888b2",
        • "type": "volume",
        • "name": "Monthly leads from TX",
        • "maximum": 1200,
        • "duration": 1,
        • "duration_units": "month",
        • "rule_set": {
          • "id": "1aacd0",
          • "op": "and",
          • "rules": [
            • {
              • "id": "1aacd0",
              • "lhv": "lead.state",
              • "op": "is equal to",
              • "rhv": "TX",
              • "rule_set": { }
              }
            ]
          },
        • "caps": [
          • { }
          ],
        • "time_zone": "America/New_York",
        • "reason": "string",
        • "created_at": "2020-11-23T11:41:52Z"
        }
      ],
    • "count": 0,
    • "duration": 1,
    • "duration_units": "month",
    • "expires_at": "2020-11-23T11:41:52Z",
    • "failed_count": 0,
    • "flow_id": "5fd4371e940df5a34a3888b2",
    • "maximum": 1200,
    • "name": "Monthly leads from TX",
    • "source_id": "5fd4371e940df5a34a3888b2",
    • "started_at": "2020-11-23T11:41:52Z",
    • "step_id": "1aacd0",
    • "time_zone": "America/New_York",
    • "type": "volume",
    • "updated_at": "2020-11-23T11:41:52Z"
    }
]

Get a cap counter

Returns the cap associated to the ID

SecurityAPIKey
Request
path Parameters
id
required
string (ID) ^[0-9a-fA-F]{24}$

ID of the cap to get

Example: 5fd4371e940df5a34a3888b2
Responses
200

OK

get/caps/{id}
Request samples
Response samples
application/json
{
  • "id": "5fd4371e940df5a34a3888b2",
  • "cap_ids": [
    • "5fd4371e940df5a34a3888b2"
    ],
  • "caps": [
    • {
      • "id": "5fd4371e940df5a34a3888b2",
      • "type": "volume",
      • "name": "Monthly leads from TX",
      • "maximum": 1200,
      • "duration": 1,
      • "duration_units": "month",
      • "rule_set": {
        • "id": "1aacd0",
        • "op": "and",
        • "rules": [
          • {
            • "id": "1aacd0",
            • "lhv": "lead.state",
            • "op": "is equal to",
            • "rhv": "TX",
            • "rule_set": { }
            }
          ]
        },
      • "caps": [
        • { }
        ],
      • "time_zone": "America/New_York",
      • "reason": "string",
      • "created_at": "2020-11-23T11:41:52Z"
      }
    ],
  • "count": 0,
  • "duration": 1,
  • "duration_units": "month",
  • "expires_at": "2020-11-23T11:41:52Z",
  • "failed_count": 0,
  • "flow_id": "5fd4371e940df5a34a3888b2",
  • "maximum": 1200,
  • "name": "Monthly leads from TX",
  • "source_id": "5fd4371e940df5a34a3888b2",
  • "started_at": "2020-11-23T11:41:52Z",
  • "step_id": "1aacd0",
  • "time_zone": "America/New_York",
  • "type": "volume",
  • "updated_at": "2020-11-23T11:41:52Z"
}

List all ping limit counters

Get the counters for all active ping limits. Ping limits that haven't received ping traffic during the current interval will not be included.

SecurityAPIKey
Request
query Parameters
flow_id
string (ID) ^[0-9a-fA-F]{24}$

Return the ping limits where flow_id matches this value

Example: flow_id=5fd4371e940df5a34a3888b2
Responses
200

OK

get/ping_limits
Request samples
Response samples
application/json
[
  • {
    • "id": "5fd4371e940df5a34a3888b2",
    • "name": "string",
    • "maximum": 0,
    • "duration": 0,
    • "duration_units": "string",
    • "time_zone": "America/New_York",
    • "created_at": "2019-08-24T14:15:22Z"
    }
]

Fetch a ping limit counter

Get a counter for a single ping limit.

SecurityAPIKey
Request
path Parameters
id
required
string (ID) ^[0-9a-fA-F]{24}$

The ID of the specific Ping Limit

Example: 5fd4371e940df5a34a3888b2
Responses
200

OK

get/ping_limits/{id}
Request samples
Response samples
application/json
{
  • "id": "5fd4371e940df5a34a3888b2",
  • "name": "string",
  • "maximum": 0,
  • "duration": 0,
  • "duration_units": "string",
  • "time_zone": "America/New_York",
  • "created_at": "2019-08-24T14:15:22Z"
}