When and Why to Use
Use complete() to end the survey for a respondent who has answered everything you need from them. The respondent's response is recorded as a complete and they are shown a thank-you screen.
By default, every survey shows the same thank-you copy. If you want to show study-specific text — for example, a brand-appropriate message, instructions for redeeming a reward, or a link to follow up — pass a message to complete().
complete(message=None)
| Parameter | Type | Required | Description |
|---|---|---|---|
message | str | no | Custom message shown to the respondent on the completion screen. If omitted, the default is used. |
Example: default completion
from survey import Survey
s = Survey(**globals())
# Add questions here
s.complete()
Example: custom completion message
from survey import Survey
s = Survey(**globals())
# Add questions here
s.complete(
message="Thanks for taking part! Your responses help us shape the next generation of our product. "
"Watch your inbox for a follow-up email with your incentive details."
)
Notes
- The completion message supports the same markdown formatting as question text, so you can include bold, italics, and links.
- Translations of the completion message are generated automatically alongside the rest of the survey when multiple languages are configured.
- Use
complete()once at the end of a respondent's path. If a respondent should be terminated rather than completed, useterminate()instead — terminations are recorded as a different status and are not shown the completion screen.