Update a phishing + training campaign

Updates an existing phishing+training campaign (identified by name). Fails if no campaign with that name exists.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Fields specific to combined phishing+training campaigns.

string
required
string
required

Unique campaign name. Sanitized server-side (apostrophes/periods/special chars become hyphens).

targetUsers
array of strings

Names of the employee lists to target.

targetUsers
boolean

Continuously sync employee lists into the campaign.

campaignTags
array of strings
campaignTags
string

Mail infrastructure instance name (e.g. "Managed Instance").

phishingProfiles
array of objects

The phishing content to send. Each entry pairs a sender profile with its email and (optional) website template.

phishingProfiles
boolean

Enterprise only. When true, the AI Program Manager auto-selects phishing lures at delivery time — omit phishingProfiles. A non-Enterprise tenant that sets this receives 403 ENTITLEMENT_REQUIRED.

string

Guidance (max 500 chars) steering per-employee auto-phish lure selection. Recommended to supply. If omitted, the platform applies the default: "Do not restrict the payload type or style of phishing email. Select whichever phishing email is most contextually appropriate for each individual employee based on their profile, role, and organizational context."

delivery
object

When and how often the campaign is delivered. Omit for an unscheduled draft. Replaces the deliveryScheduleImmediate/deliveryScheduleNow booleans, the "MMM dd, yyyy - MMM dd, yyyy" scheduleDays string, and the cFrequency* flags.

education
object

Post-click education (the landing shown to anyone who clicks or submits credentials). If omitted entirely on a phishing / phishing+training campaign, the tenant's configured default education (get-phish-settings / update-phish-education) is inherited, falling back to the CanIPhish managed-learning page when none is set.

boolean
Defaults to true

When true (the API default when omitted), each phishing link/attachment can only be interacted with once per recipient. When false, links can be clicked multiple times. Note: this differs from the console's own Create Campaign wizard, whose "One-time phishing link" checkbox is unchecked by default — i.e. the console UI defaults to false (multi-click) while this API defaults to true (one-time) when the field is omitted. Pass the value explicitly to avoid relying on either default.

string
enum
Defaults to email

Campaign channel. "email" (the default) sends a standard email phishing simulation; "voicePhish" runs a voice phishing (vishing) campaign, which requires voice phishing to be active on the tenant. Omitting the field is equivalent to "email".

Allowed:
vishingTemplates
array of strings

Voice phishing template names (voicePhish campaigns).

vishingTemplates
string

Phishing email language — ISO culture (e.g. "en", "fr") or "dynamic".

boolean

Auto-archive completed phishing campaigns.

integer

Days after which to auto-archive (1–365).

trainingModules
array of strings

Training module names (train / phishTrain).

trainingModules
boolean

Enterprise only. When true, the AI Program Manager auto-selects training modules per employee at assignment time — omit trainingModules. A non-Enterprise tenant that sets this receives 403 ENTITLEMENT_REQUIRED.

string

Guidance (max 500 chars) steering per-employee auto-train module selection. Recommended to supply. If omitted, the platform applies the default: "Select whichever training modules are most contextually appropriate for each individual employee based on their role, prior training history, demonstrated skill level, and any recent phishing interactions."

string
enum

How often the training recurs. "once" = a single assignment.

Allowed:
integer
Defaults to 14
string
enum

"allTrainings" assigns every selected module; "randomTraining" lets CanIPhish intelligently assign a module per employee. (Any value other than "allTrainings" is treated as randomTraining.)

Allowed:
string

ISO culture or "dynamic".

string

Training expiry "MMM dd, yyyy" (capped at 4 years).

string
enum

Who gets trained (phishTrain campaigns): "compromised" = employees who interacted with the payload, "payloadCompromised" = employees who submitted data to the payload, "all" = every targeted employee. For train-type campaigns the scope is assigned server-side, so this is ignored.

Allowed:
Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json