[**@s4ai/core Documentation v0.3.23**](../../../README.md)

***

[@s4ai/core Documentation](../../../modules.md) / [autonomous/s4-user-acquisition](../README.md) / S4UserAcquisitionOrchestrator

# Class: S4UserAcquisitionOrchestrator

Defined in: autonomous/s4-user-acquisition.js:159

S4 User-Acquisition Orchestrator Class
Coordinates autonomous user growth loops: signal intelligence, lead capture,
funnel tracking, and MLM feedback integration.

## Constructors

### Constructor

> **new S4UserAcquisitionOrchestrator**(`config?`): `S4UserAcquisitionOrchestrator`

Defined in: autonomous/s4-user-acquisition.js:160

#### Parameters

##### config?

#### Returns

`S4UserAcquisitionOrchestrator`

## Properties

### channels

> **channels**: `Map`\<`any`, `any`\>

Defined in: autonomous/s4-user-acquisition.js:191

***

### config

> **config**: `object`

Defined in: autonomous/s4-user-acquisition.js:161

#### channelRotation

> **channelRotation**: `any`

#### cycleInterval

> **cycleInterval**: `any`

#### maxLeadBuffer

> **maxLeadBuffer**: `any`

#### signalThreshold

> **signalThreshold**: `any`

***

### engines

> **engines**: `object`

Defined in: autonomous/s4-user-acquisition.js:185

#### funnelTracking

> **funnelTracking**: `null` = `null`

#### mlmFeedback

> **mlmFeedback**: `null` = `null`

#### signalIntelligence

> **signalIntelligence**: `null` = `null`

***

### leadQueue

> **leadQueue**: `any`[]

Defined in: autonomous/s4-user-acquisition.js:192

***

### loopInterval

> **loopInterval**: `number` \| `undefined`

Defined in: autonomous/s4-user-acquisition.js:428

***

### signals

> **signals**: `any`[]

Defined in: autonomous/s4-user-acquisition.js:193

***

### state

> **state**: `object`

Defined in: autonomous/s4-user-acquisition.js:169

#### acquisitionMetrics

> **acquisitionMetrics**: `object`

##### acquisitionMetrics.channelROI

> **channelROI**: `object` = `{}`

##### acquisitionMetrics.conversionRate

> **conversionRate**: `number` = `0`

##### acquisitionMetrics.costPerAcquisition

> **costPerAcquisition**: `number` = `0`

##### acquisitionMetrics.qualifiedLeads

> **qualifiedLeads**: `number` = `0`

##### acquisitionMetrics.totalLeads

> **totalLeads**: `number` = `0`

#### channelScores

> **channelScores**: `object` = `{}`

#### cycle

> **cycle**: `number` = `0`

#### isRunning

> **isRunning**: `boolean` = `false`

#### lastRun

> **lastRun**: `null` = `null`

#### leads

> **leads**: `never`[] = `[]`

#### nextScheduled

> **nextScheduled**: `null` = `null`

## Methods

### captureLead()

> **captureLead**(`lead`): `Promise`\<\{ `error?`: `undefined`; `leadId`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `leadId?`: `undefined`; `success`: `boolean`; \}\>

Defined in: autonomous/s4-user-acquisition.js:328

Capture new lead from acquisition channel

#### Parameters

##### lead

`any`

#### Returns

`Promise`\<\{ `error?`: `undefined`; `leadId`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `leadId?`: `undefined`; `success`: `boolean`; \}\>

***

### getState()

> **getState**(): `object`

Defined in: autonomous/s4-user-acquisition.js:402

Get current acquisition state

#### Returns

`object`

##### channelScores

> **channelScores**: `object`

##### cycle

> **cycle**: `number`

##### leads

> **leads**: `number`

##### metrics

> **metrics**: `object`

###### metrics.channelROI

> **channelROI**: `object` = `{}`

###### metrics.conversionRate

> **conversionRate**: `number` = `0`

###### metrics.costPerAcquisition

> **costPerAcquisition**: `number` = `0`

###### metrics.qualifiedLeads

> **qualifiedLeads**: `number` = `0`

###### metrics.totalLeads

> **totalLeads**: `number` = `0`

##### nextScheduled

> **nextScheduled**: `null`

##### running

> **running**: `boolean`

***

### initialize()

> **initialize**(`signalEngine`, `funnelEngine`, `mlmEngine`): `Promise`\<\{ `error?`: `undefined`; `success`: `boolean`; \} \| \{ `error`: `any`; `success`: `boolean`; \}\>

Defined in: autonomous/s4-user-acquisition.js:199

Initialize orchestrator with engines

#### Parameters

##### signalEngine

`any`

##### funnelEngine

`any`

##### mlmEngine

`any`

#### Returns

`Promise`\<\{ `error?`: `undefined`; `success`: `boolean`; \} \| \{ `error`: `any`; `success`: `boolean`; \}\>

***

### recordConversion()

> **recordConversion**(`leadId`, `metadata?`): `Promise`\<\{ `error?`: `undefined`; `leadId`: `any`; `metadata`: \{ \}; `success`: `boolean`; \} \| \{ `error`: `any`; `leadId?`: `undefined`; `metadata?`: `undefined`; `success`: `boolean`; \}\>

Defined in: autonomous/s4-user-acquisition.js:377

Record conversion from lead to customer

#### Parameters

##### leadId

`any`

##### metadata?

#### Returns

`Promise`\<\{ `error?`: `undefined`; `leadId`: `any`; `metadata`: \{ \}; `success`: `boolean`; \} \| \{ `error`: `any`; `leadId?`: `undefined`; `metadata?`: `undefined`; `success`: `boolean`; \}\>

***

### runAcquisitionCycle()

> **runAcquisitionCycle**(): `Promise`\<\{ `conversions`: `any`; `cycle`: `number`; `duration`: `number`; `error?`: `undefined`; `leadsProcessed`: `number`; `metrics`: \{ `channelROI`: \{ \}; `conversionRate`: `number`; `costPerAcquisition`: `number`; `qualifiedLeads`: `number`; `totalLeads`: `number`; \}; `nextFocus`: `any`; `signals`: `any`; `success`: `boolean`; \} \| \{ `conversions?`: `undefined`; `cycle?`: `undefined`; `duration?`: `undefined`; `error`: `any`; `leadsProcessed?`: `undefined`; `metrics?`: `undefined`; `nextFocus?`: `undefined`; `signals?`: `undefined`; `success`: `boolean`; \}\>

Defined in: autonomous/s4-user-acquisition.js:228

Main acquisition cycle - runs autonomously

#### Returns

`Promise`\<\{ `conversions`: `any`; `cycle`: `number`; `duration`: `number`; `error?`: `undefined`; `leadsProcessed`: `number`; `metrics`: \{ `channelROI`: \{ \}; `conversionRate`: `number`; `costPerAcquisition`: `number`; `qualifiedLeads`: `number`; `totalLeads`: `number`; \}; `nextFocus`: `any`; `signals`: `any`; `success`: `boolean`; \} \| \{ `conversions?`: `undefined`; `cycle?`: `undefined`; `duration?`: `undefined`; `error`: `any`; `leadsProcessed?`: `undefined`; `metrics?`: `undefined`; `nextFocus?`: `undefined`; `signals?`: `undefined`; `success`: `boolean`; \}\>

***

### scoreChannels()

> **scoreChannels**(`signals`): `Promise`\<`void`\>

Defined in: autonomous/s4-user-acquisition.js:286

Score channels based on conversion rate, ROI, and signals

#### Parameters

##### signals

`any`

#### Returns

`Promise`\<`void`\>

***

### selectNextChannelFocus()

> **selectNextChannelFocus**(): `Promise`\<`any`\>

Defined in: autonomous/s4-user-acquisition.js:311

Select highest-priority channel for next acquisition push

#### Returns

`Promise`\<`any`\>

***

### start()

> **start**(): `Promise`\<\{ `error`: `string`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `success`: `boolean`; \}\>

Defined in: autonomous/s4-user-acquisition.js:416

Start autonomous acquisition loop

#### Returns

`Promise`\<\{ `error`: `string`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `success`: `boolean`; \}\>

***

### stop()

> **stop**(): `object`

Defined in: autonomous/s4-user-acquisition.js:435

Stop autonomous acquisition loop

#### Returns

`object`

##### success

> **success**: `boolean` = `true`

***

### updateAcquisitionMetrics()

> **updateAcquisitionMetrics**(`funnelMetrics`): `void`

Defined in: autonomous/s4-user-acquisition.js:361

Update acquisition metrics based on funnel performance

#### Parameters

##### funnelMetrics

`any`

#### Returns

`void`
